static void show_desktop_applet_realized(MatePanelApplet* applet, gpointer data) { ShowDesktopData* sdd; GdkScreen* screen; sdd = (ShowDesktopData*) data; if (sdd->matewnck_screen != NULL) g_signal_handlers_disconnect_by_func(sdd->matewnck_screen, show_desktop_changed_callback, sdd); if (sdd->icon_theme != NULL) g_signal_handlers_disconnect_by_func(sdd->icon_theme, theme_changed_callback, sdd); screen = gtk_widget_get_screen(sdd->applet); sdd->matewnck_screen = matewnck_screen_get(gdk_screen_get_number (screen)); if (sdd->matewnck_screen != NULL) wncklet_connect_while_alive(sdd->matewnck_screen, "showing_desktop_changed", G_CALLBACK(show_desktop_changed_callback), sdd, sdd->applet); else g_warning("Could not get MatewnckScreen!"); show_desktop_changed_callback(sdd->matewnck_screen, sdd); sdd->icon_theme = gtk_icon_theme_get_for_screen (screen); wncklet_connect_while_alive(sdd->icon_theme, "changed", G_CALLBACK(theme_changed_callback), sdd, sdd->applet); update_icon (sdd); }
static MatewnckScreen * matewnck_selector_get_screen (MatewnckSelector *selector) { GdkScreen *screen; g_assert (gtk_widget_has_screen (GTK_WIDGET (selector))); screen = gtk_widget_get_screen (GTK_WIDGET (selector)); return matewnck_screen_get (gdk_screen_get_number (screen)); }
int main (int argc, char **argv) { MatewnckScreen *screen; GtkWidget *sw; GtkWidget *win; gtk_init (&argc, &argv); screen = matewnck_screen_get (0); g_signal_connect (G_OBJECT (screen), "active_window_changed", G_CALLBACK (active_window_changed_callback), NULL); g_signal_connect (G_OBJECT (screen), "active_workspace_changed", G_CALLBACK (active_workspace_changed_callback), NULL); g_signal_connect (G_OBJECT (screen), "window_stacking_changed", G_CALLBACK (window_stacking_changed_callback), NULL); g_signal_connect (G_OBJECT (screen), "window_opened", G_CALLBACK (window_opened_callback), NULL); g_signal_connect (G_OBJECT (screen), "window_closed", G_CALLBACK (window_closed_callback), NULL); g_signal_connect (G_OBJECT (screen), "workspace_created", G_CALLBACK (workspace_created_callback), NULL); g_signal_connect (G_OBJECT (screen), "workspace_destroyed", G_CALLBACK (workspace_destroyed_callback), NULL); g_signal_connect (G_OBJECT (screen), "application_opened", G_CALLBACK (application_opened_callback), NULL); g_signal_connect (G_OBJECT (screen), "application_closed", G_CALLBACK (application_closed_callback), NULL); g_signal_connect (G_OBJECT (screen), "showing_desktop_changed", G_CALLBACK (showing_desktop_changed_callback), NULL); global_tree_model = create_tree_model (); global_tree_view = create_tree_view (); gtk_tree_view_set_model (GTK_TREE_VIEW (global_tree_view), global_tree_model); win = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (win), "Window List"); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (sw), global_tree_view); gtk_container_add (GTK_CONTAINER (win), sw); gtk_window_set_default_size (GTK_WINDOW (win), 650, 550); /* quit on window close */ g_signal_connect (G_OBJECT (win), "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show_all (win); gtk_main (); return 0; }