[gnome-software] Disconnect from GsApp notify::state in a few more places
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Disconnect from GsApp notify::state in a few more places
- Date: Fri, 12 Sep 2014 09:49:59 +0000 (UTC)
commit 76114a2b616262c1b19f4658d572dc2c113ae766
Author: Kalev Lember <kalevlember gmail com>
Date: Fri Sep 12 11:47:07 2014 +0200
Disconnect from GsApp notify::state in a few more places
src/gs-app-addon-row.c | 3 +++
src/gs-app-row.c | 3 +++
src/gs-popular-tile.c | 6 ++++++
3 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/gs-app-addon-row.c b/src/gs-app-addon-row.c
index 81ad708..23cd511 100644
--- a/src/gs-app-addon-row.c
+++ b/src/gs-app-addon-row.c
@@ -181,6 +181,9 @@ gs_app_addon_row_destroy (GtkWidget *object)
GsAppAddonRow *row = GS_APP_ADDON_ROW (object);
GsAppAddonRowPrivate *priv = row->priv;
+ if (priv->app)
+ g_signal_handlers_disconnect_by_func (priv->app, gs_app_addon_row_notify_props_changed_cb,
row);
+
g_clear_object (&priv->app);
GTK_WIDGET_CLASS (gs_app_addon_row_parent_class)->destroy (object);
diff --git a/src/gs-app-row.c b/src/gs-app-row.c
index 12f1dbe..195f514 100644
--- a/src/gs-app-row.c
+++ b/src/gs-app-row.c
@@ -350,6 +350,9 @@ gs_app_row_destroy (GtkWidget *object)
GsAppRow *app_row = GS_APP_ROW (object);
GsAppRowPrivate *priv = app_row->priv;
+ if (priv->app)
+ g_signal_handlers_disconnect_by_func (priv->app, gs_app_row_notify_props_changed_cb, app_row);
+
g_clear_object (&priv->app);
if (priv->pending_refresh_id != 0) {
g_source_remove (priv->pending_refresh_id);
diff --git a/src/gs-popular-tile.c b/src/gs-popular-tile.c
index bbabb02..8f4768e 100644
--- a/src/gs-popular-tile.c
+++ b/src/gs-popular-tile.c
@@ -111,6 +111,9 @@ gs_popular_tile_set_app (GsPopularTile *tile, GsApp *app)
priv = gs_popular_tile_get_instance_private (tile);
+ if (priv->app)
+ g_signal_handlers_disconnect_by_func (priv->app, app_state_changed, tile);
+
g_clear_object (&priv->app);
if (!app)
return;
@@ -144,6 +147,9 @@ gs_popular_tile_destroy (GtkWidget *widget)
priv = gs_popular_tile_get_instance_private (tile);
+ if (priv->app)
+ g_signal_handlers_disconnect_by_func (priv->app, app_state_changed, tile);
+
g_clear_object (&priv->app);
GTK_WIDGET_CLASS (gs_popular_tile_parent_class)->destroy (widget);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]