static void panel_menu_button_finalize (GObject *object) { PanelMenuButton *button = PANEL_MENU_BUTTON (object); panel_lockdown_notify_remove (G_CALLBACK (panel_menu_button_recreate_menu), button); panel_menu_button_disconnect_from_mateconf (button); if (button->priv->menu) { /* detaching the menu will kill our reference */ gtk_menu_detach (GTK_MENU (button->priv->menu)); button->priv->menu = NULL; } g_free (button->priv->applet_id); button->priv->applet_id = NULL; g_free (button->priv->menu_path); button->priv->menu_path = NULL; g_free (button->priv->custom_icon); button->priv->custom_icon = NULL; g_free (button->priv->tooltip); button->priv->tooltip = NULL; G_OBJECT_CLASS (panel_menu_button_parent_class)->finalize (object); }
static void panel_destroy (PanelToplevel *toplevel, PanelData *pd) { panel_lockdown_notify_remove (G_CALLBACK (panel_recreate_context_menu), pd); if (pd->menu) { g_signal_handlers_disconnect_by_func (pd->menu, context_menu_deactivate, pd); g_object_unref (pd->menu); } pd->menu = NULL; pd->panel = NULL; if (pd->deactivate_idle != 0) g_source_remove (pd->deactivate_idle); pd->deactivate_idle = 0; g_object_set_data (G_OBJECT (toplevel), "PanelData", NULL); panel_list = g_slist_remove (panel_list, pd); g_free (pd); }
static void mate_panel_applet_destroy (GtkWidget *widget, AppletInfo *info) { GList *l; g_return_if_fail (info != NULL); info->widget = NULL; registered_applets = g_slist_remove (registered_applets, info); queued_position_saves = g_slist_remove (queued_position_saves, info); if (info->type == PANEL_OBJECT_DRAWER) { Drawer *drawer = info->data; if (drawer->toplevel) { PanelWidget *panel_widget; panel_widget = panel_toplevel_get_panel_widget ( drawer->toplevel); panel_widget->master_widget = NULL; gtk_widget_destroy (GTK_WIDGET (drawer->toplevel)); drawer->toplevel = NULL; } } if (info->type != PANEL_OBJECT_APPLET) panel_lockdown_notify_remove (G_CALLBACK (mate_panel_applet_recreate_menu), info); if (info->menu) g_object_unref (info->menu); info->menu = NULL; if (info->data_destroy) info->data_destroy (info->data); info->data = NULL; for (l = info->user_menu; l != NULL; l = l->next) { AppletUserMenu *umenu = l->data; g_free (umenu->name); g_free (umenu->stock_item); g_free (umenu->text); g_free (umenu); } g_list_free (info->user_menu); info->user_menu = NULL; g_free (info->id); info->id = NULL; g_free (info); }
static void mate_panel_applet_destroy (GtkWidget *widget, AppletInfo *info) { g_return_if_fail (info != NULL); g_signal_handlers_disconnect_by_data(info->settings,widget); info->widget = NULL; if (info->settings) { g_object_unref (info->settings); info->settings = NULL; } registered_applets = g_slist_remove (registered_applets, info); queued_position_saves = g_slist_remove (queued_position_saves, info); if (info->type == PANEL_OBJECT_DRAWER) { Drawer *drawer = info->data; if (drawer->toplevel) { PanelWidget *panel_widget; panel_widget = panel_toplevel_get_panel_widget ( drawer->toplevel); panel_widget->master_widget = NULL; gtk_widget_destroy (GTK_WIDGET (drawer->toplevel)); drawer->toplevel = NULL; } } if (info->type != PANEL_OBJECT_APPLET) panel_lockdown_notify_remove (G_CALLBACK (mate_panel_applet_recreate_menu), info); if (info->menu) { g_signal_handlers_disconnect_by_func (info->menu, G_CALLBACK (applet_menu_show), info); g_signal_handlers_disconnect_by_func (info->menu, G_CALLBACK (applet_menu_deactivate), info); g_object_unref (info->menu); } info->menu = NULL; if (info->data_destroy) info->data_destroy (info->data); info->data = NULL; mate_panel_applet_clear_user_menu (info); g_free (info->id); info->id = NULL; g_free (info); }
static void panel_desktop_menu_item_finalize (GObject *object) { PanelDesktopMenuItem *menuitem = (PanelDesktopMenuItem *) object; if (menuitem->priv->append_lock_logout) panel_lockdown_notify_remove (G_CALLBACK (panel_desktop_menu_item_recreate_menu), menuitem); G_OBJECT_CLASS (panel_desktop_menu_item_parent_class)->finalize (object); }
static void panel_action_button_finalize (GObject *object) { PanelActionButton *button = PANEL_ACTION_BUTTON (object); button->priv->info = NULL; button->priv->type = PANEL_ACTION_NONE; panel_lockdown_notify_remove (G_CALLBACK (panel_action_button_update_sensitivity), button); mateconf_client_notify_remove (panel_mateconf_get_client (), button->priv->mateconf_notify); button->priv->mateconf_notify = 0; G_OBJECT_CLASS (panel_action_button_parent_class)->finalize (object); }
static void panel_action_button_finalize (GObject *object) { PanelActionButton *button = PANEL_ACTION_BUTTON (object); if (button->priv->settings) g_object_unref (button->priv->settings); button->priv->settings = NULL; button->priv->info = NULL; button->priv->type = PANEL_ACTION_NONE; panel_lockdown_notify_remove (G_CALLBACK (panel_action_button_update_sensitivity), button); G_OBJECT_CLASS (panel_action_button_parent_class)->finalize (object); }