~ted/indicator-appmenu/destruction-will-happen-in-time

« back to all changes in this revision

Viewing changes to src/window-menus.c

  • Committer: Ted Gould
  • Date: 2011-04-05 21:45:12 UTC
  • mfrom: (111.1.1 lp738561)
  • Revision ID: ted@gould.cx-20110405214512-7m2azynwkt31agse
Make sure to disconnect all the handlers from the client

Show diffs side-by-side

added added

removed removed

Lines of Context:
76
76
static void window_menus_init       (WindowMenus *self);
77
77
static void window_menus_dispose    (GObject *object);
78
78
static void root_changed            (DbusmenuClient * client, DbusmenuMenuitem * new_root, gpointer user_data);
 
79
static void event_status            (DbusmenuClient * client, DbusmenuMenuitem * mi, gchar * event, GVariant * evdata, guint timestamp, GError * error, gpointer user_data);
 
80
static void item_activate           (DbusmenuClient * client, DbusmenuMenuitem * item, guint timestamp, gpointer user_data);
 
81
static void status_changed          (DbusmenuClient * client, GParamSpec * pspec, gpointer user_data);
79
82
static void menu_entry_added        (DbusmenuMenuitem * root, DbusmenuMenuitem * newentry, guint position, gpointer user_data);
80
83
static void menu_entry_removed      (DbusmenuMenuitem * root, DbusmenuMenuitem * oldentry, gpointer user_data);
81
84
static void menu_entry_realized     (DbusmenuMenuitem * newentry, gpointer user_data);
231
234
        }
232
235
 
233
236
        if (priv->client != NULL) {
 
237
                g_signal_handlers_disconnect_by_func(G_OBJECT(priv->client), G_CALLBACK(root_changed),    object);
 
238
                g_signal_handlers_disconnect_by_func(G_OBJECT(priv->client), G_CALLBACK(event_status),    object);
 
239
                g_signal_handlers_disconnect_by_func(G_OBJECT(priv->client), G_CALLBACK(item_activate),   object);
 
240
                g_signal_handlers_disconnect_by_func(G_OBJECT(priv->client), G_CALLBACK(status_changed),  object);
 
241
 
234
242
                g_object_unref(G_OBJECT(priv->client));
235
243
                priv->client = NULL;
236
244
        }