static void update_button_state (ShowDesktopData *sdd) { if (sdd->showing_desktop) { g_signal_handlers_block_by_func (G_OBJECT (sdd->button), G_CALLBACK (button_toggled_callback), sdd); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sdd->button), TRUE); g_signal_handlers_unblock_by_func (G_OBJECT (sdd->button), G_CALLBACK (button_toggled_callback), sdd); } else { g_signal_handlers_block_by_func (G_OBJECT (sdd->button), G_CALLBACK (button_toggled_callback), sdd); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sdd->button), FALSE); g_signal_handlers_unblock_by_func (G_OBJECT (sdd->button), G_CALLBACK (button_toggled_callback), sdd); } update_button_display (sdd); }
static void button_toggled_callback(GtkWidget* button, ShowDesktopData* sdd) { if (!gdk_x11_screen_supports_net_wm_hint(gtk_widget_get_screen(button), gdk_atom_intern("_NET_SHOWING_DESKTOP", FALSE))) { static GtkWidget* dialog = NULL; if (dialog && gtk_widget_get_screen(dialog) != gtk_widget_get_screen(button)) gtk_widget_destroy (dialog); if (dialog) { gtk_window_present(GTK_WINDOW(dialog)); return; } dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _("Your window manager does not support the show desktop button, or you are not running a window manager.")); g_object_add_weak_pointer(G_OBJECT(dialog), (gpointer) &dialog); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), NULL); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_window_set_screen(GTK_WINDOW(dialog), gtk_widget_get_screen(button)); gtk_widget_show(dialog); return; } if (sdd->matewnck_screen != NULL) matewnck_screen_toggle_showing_desktop(sdd->matewnck_screen, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))); update_button_display (sdd); }
static void user_photo_changed_callback (GdkPixbuf *pixbuf, void *data) { ButtonData *button_data; button_data = data; g_debug ("got user photo changed\n"); if (pixbuf) g_object_ref(pixbuf); if (button_data->user_photo) g_object_unref(button_data->user_photo); button_data->user_photo = pixbuf; update_button_display (button_data); }
static void button_toggled_callback (GtkWidget *button, ButtonData *button_data) { if (button_data->suppress_popout_set) return; if (button_data->bb_proxy) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) { hippo_dbus_proxy_VOID__UINT32 (button_data->bb_proxy, "Popout", gtk_get_current_event_time()); } else { hippo_dbus_proxy_VOID__VOID (button_data->bb_proxy, "Unpopout"); } } update_button_display (button_data); }
static void update_button_state (ButtonData *button_data) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button_data->button), button_data->showing_bigboard); update_button_display (button_data); }