static void mate_panel_applet_locked_change_notify (GSettings *settings, gchar *key, GtkWidget *applet) { gboolean locked; gboolean applet_locked; AppletInfo *info; PanelWidget *panel_widget; g_assert (applet != NULL); info = (AppletInfo *) g_object_get_data (G_OBJECT (applet), "applet_info"); if (info == NULL) return; locked = g_settings_get_boolean (settings, key); panel_widget = mate_panel_applet_get_panel_widget (info); applet_locked = panel_widget_get_applet_locked (panel_widget, info->widget); if ((locked && applet_locked) || !(locked || applet_locked)) return; mate_panel_applet_toggle_locked (info); if (info->type == PANEL_OBJECT_APPLET) mate_panel_applet_frame_sync_menu_state (MATE_PANEL_APPLET_FRAME (info->widget)); else mate_panel_applet_recreate_menu (info); }
static void listener_popup_handle_lock (MateComponentUIComponent *uic, const char *path, MateComponent_UIComponent_EventType type, const char *state, gpointer data) { MatePanelAppletFrame *frame; gboolean locked; g_assert (!strcmp (path, "LockAppletToPanel")); if (type != MateComponent_UIComponent_STATE_CHANGED) return; if (!state) return; frame = (MatePanelAppletFrame *) data; locked = (strcmp (state, "1") == 0); _mate_panel_applet_frame_applet_lock (frame, locked); mate_panel_applet_frame_sync_menu_state (frame); }
static void mate_panel_applet_locked_change_notify (MateConfClient *client, guint cnxn_id, MateConfEntry *entry, GtkWidget *applet) { MateConfValue *value; gboolean locked; gboolean applet_locked; AppletInfo *info; PanelWidget *panel_widget; g_assert (applet != NULL); info = (AppletInfo *) g_object_get_data (G_OBJECT (applet), "applet_info"); if (info == NULL) return; value = mateconf_entry_get_value (entry); if (value == NULL || value->type != MATECONF_VALUE_BOOL) return; locked = mateconf_value_get_bool (value); panel_widget = mate_panel_applet_get_panel_widget (info); applet_locked = panel_widget_get_applet_locked (panel_widget, info->widget); if ((locked && applet_locked) || !(locked || applet_locked)) return; mate_panel_applet_toggle_locked (info); if (info->type == PANEL_OBJECT_APPLET) mate_panel_applet_frame_sync_menu_state (MATE_PANEL_APPLET_FRAME (info->widget)); else mate_panel_applet_recreate_menu (info); }