#include static void quit_cb (GtkWidget *widget, gpointer data) { gboolean *done = data; *done = TRUE; g_main_context_wakeup (NULL); } static void report_suspended_state (GtkWindow *window) { g_print ("Window is %s\n", gtk_window_is_suspended (window) ? "suspended" : "active"); } static void suspended_changed_cb (GtkWindow *window) { report_suspended_state (window); } int main (int argc, char *argv[]) { GtkWidget *window; gboolean done = FALSE; gtk_init (); window = gtk_window_new (); gtk_window_set_default_size (GTK_WINDOW (window), 200, 200); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); g_signal_connect (window, "notify::suspended", G_CALLBACK (suspended_changed_cb), &done); gtk_window_present (GTK_WINDOW (window)); report_suspended_state (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); return EXIT_SUCCESS; }