[gtk+] testgtk: Stop using GdkEventWindowState



commit 2c267a3cf1a4d961db93c22ae8712f28b39604d2
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Dec 14 22:09:13 2017 -0500

    testgtk: Stop using GdkEventWindowState
    
    Use GdkWindow::state instead - the event is going away.

 tests/testgtk.c |   33 ++++++++++++++++-----------------
 1 files changed, 16 insertions(+), 17 deletions(-)
---
diff --git a/tests/testgtk.c b/tests/testgtk.c
index cb017e7..e3c1816 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -5740,22 +5740,20 @@ create_wmhints (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
-
 /*
  * Window state tracking
  */
 
-static gint
-window_state_callback (GtkWidget *widget,
-                       GdkEventWindowState *event,
-                       gpointer data)
+static void
+window_state_callback (GdkWindow  *window,
+                       GParamSpec *pspec,
+                       GtkWidget  *label)
 {
-  GtkWidget *label = data;
   gchar *msg;
-  GdkWindowState changed, new_state;
+  GdkWindowState new_state;
 
-  gdk_event_get_window_state ((GdkEvent *)event, &changed, &new_state);
-  msg = g_strconcat (gtk_window_get_title (GTK_WINDOW (widget)), ": ",
+  new_state = gdk_window_get_state (window);
+  msg = g_strconcat ((const char *)g_object_get_data (G_OBJECT (label), "title"), ": ",
                      (new_state & GDK_WINDOW_STATE_WITHDRAWN) ?
                      "withdrawn" : "not withdrawn", ", ",
                      (new_state & GDK_WINDOW_STATE_ICONIFIED) ?
@@ -5765,18 +5763,16 @@ window_state_callback (GtkWidget *widget,
                      (new_state & GDK_WINDOW_STATE_MAXIMIZED) ?
                      "maximized" : "not maximized", ", ",
                      (new_state & GDK_WINDOW_STATE_FULLSCREEN) ?
-                     "fullscreen" : "not fullscreen",
+                     "fullscreen" : "not fullscreen", ", ",
                      (new_state & GDK_WINDOW_STATE_ABOVE) ?
                      "above" : "not above", ", ",
                      (new_state & GDK_WINDOW_STATE_BELOW) ?
                      "below" : "not below", ", ",
                      NULL);
-  
+
   gtk_label_set_text (GTK_LABEL (label), msg);
 
   g_free (msg);
-
-  return FALSE;
 }
 
 static GtkWidget*
@@ -5798,10 +5794,10 @@ tracking_label (GtkWidget *window)
   gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
   gtk_box_pack_start (GTK_BOX (hbox), label);
 
-  g_signal_connect (window,
-                   "window_state_event",
-                   G_CALLBACK (window_state_callback),
-                   label);
+  g_object_set_data (G_OBJECT (label), "title", (gpointer)gtk_window_get_title (GTK_WINDOW (window)));
+  g_signal_connect (gtk_widget_get_window (window), "notify::state",
+                    G_CALLBACK (window_state_callback),
+                    label);
 
   button = gtk_button_new_with_label ("Deiconify");
   g_signal_connect_object (button,
@@ -6030,6 +6026,9 @@ create_window_states (GtkWidget *widget)
       controls = get_state_controls (normal);
       gtk_container_add (GTK_CONTAINER (normal), controls);
       
+      gtk_widget_realize (iconified);
+      gtk_widget_realize (normal);
+
       label = tracking_label (iconified);
       gtk_container_add (GTK_CONTAINER (box1), label);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]