]> Pileus Git - ~andy/gtk/commitdiff
Always select for property notify for maintaining window state.
authorMatthias Clasen <matthiasc@src.gnome.org>
Mon, 6 May 2002 22:05:17 +0000 (22:05 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 6 May 2002 22:05:17 +0000 (22:05 +0000)
* gdk/x11/gdkwindow-x11.c (gdk_window_new):
(gdk_window_set_events): Always select for property notify for
maintaining window state.

* gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
property notifys if they were selected by gdk_window_set_events.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gdk/x11/gdkevents-x11.c
gdk/x11/gdkwindow-x11.c

index 6133caa2b6d47b130ecc37377d4d5e6add548010..b9e7fd9e1ac20256a8408c18b7aa8ee3db487a01 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-05-07  Matthias Clasen  <maclas@gmx.de>
+
+       Fix for #79248:
+       
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       (gdk_window_set_events): Always select for property notify for
+       maintaining window state.
+
+       * gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
+       property notifys if they were selected by gdk_window_set_events.
+
 Mon May  6 23:48:14 2002  Kristian Rietveld  <kris@gtk.org>
 
        * gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
index 6133caa2b6d47b130ecc37377d4d5e6add548010..b9e7fd9e1ac20256a8408c18b7aa8ee3db487a01 100644 (file)
@@ -1,3 +1,14 @@
+2002-05-07  Matthias Clasen  <maclas@gmx.de>
+
+       Fix for #79248:
+       
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       (gdk_window_set_events): Always select for property notify for
+       maintaining window state.
+
+       * gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
+       property notifys if they were selected by gdk_window_set_events.
+
 Mon May  6 23:48:14 2002  Kristian Rietveld  <kris@gtk.org>
 
        * gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
index 6133caa2b6d47b130ecc37377d4d5e6add548010..b9e7fd9e1ac20256a8408c18b7aa8ee3db487a01 100644 (file)
@@ -1,3 +1,14 @@
+2002-05-07  Matthias Clasen  <maclas@gmx.de>
+
+       Fix for #79248:
+       
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       (gdk_window_set_events): Always select for property notify for
+       maintaining window state.
+
+       * gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
+       property notifys if they were selected by gdk_window_set_events.
+
 Mon May  6 23:48:14 2002  Kristian Rietveld  <kris@gtk.org>
 
        * gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
index 6133caa2b6d47b130ecc37377d4d5e6add548010..b9e7fd9e1ac20256a8408c18b7aa8ee3db487a01 100644 (file)
@@ -1,3 +1,14 @@
+2002-05-07  Matthias Clasen  <maclas@gmx.de>
+
+       Fix for #79248:
+       
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       (gdk_window_set_events): Always select for property notify for
+       maintaining window state.
+
+       * gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
+       property notifys if they were selected by gdk_window_set_events.
+
 Mon May  6 23:48:14 2002  Kristian Rietveld  <kris@gtk.org>
 
        * gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
index 6133caa2b6d47b130ecc37377d4d5e6add548010..b9e7fd9e1ac20256a8408c18b7aa8ee3db487a01 100644 (file)
@@ -1,3 +1,14 @@
+2002-05-07  Matthias Clasen  <maclas@gmx.de>
+
+       Fix for #79248:
+       
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       (gdk_window_set_events): Always select for property notify for
+       maintaining window state.
+
+       * gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
+       property notifys if they were selected by gdk_window_set_events.
+
 Mon May  6 23:48:14 2002  Kristian Rietveld  <kris@gtk.org>
 
        * gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
index 6133caa2b6d47b130ecc37377d4d5e6add548010..b9e7fd9e1ac20256a8408c18b7aa8ee3db487a01 100644 (file)
@@ -1,3 +1,14 @@
+2002-05-07  Matthias Clasen  <maclas@gmx.de>
+
+       Fix for #79248:
+       
+       * gdk/x11/gdkwindow-x11.c (gdk_window_new): 
+       (gdk_window_set_events): Always select for property notify for
+       maintaining window state.
+
+       * gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
+       property notifys if they were selected by gdk_window_set_events.
+
 Mon May  6 23:48:14 2002  Kristian Rietveld  <kris@gtk.org>
 
        * gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
index fbb016fe73018a6b60546dd7ca4de3b0c83e7fd7..181b9fea1da5281f101a0bde4aba943259513d6e 100644 (file)
@@ -509,7 +509,7 @@ gdk_event_translate (GdkDisplay *display,
   window = NULL;
   window_private = NULL;
   event->any.window = NULL;
-  
+
   if (_gdk_default_filters)
     {
       /* Apply global filters */
@@ -651,7 +651,7 @@ gdk_event_translate (GdkDisplay *display,
       xoffset = 0;
       yoffset = 0;
     }
-  
+
   switch (xevent->type)
     {
     case KeyPress:
@@ -1453,23 +1453,28 @@ gdk_event_translate (GdkDisplay *display,
 
       if (window_private == NULL)
         {
-          return_val = FALSE;
+         return_val = FALSE;
           break;
         }
       
-      event->property.type = GDK_PROPERTY_NOTIFY;
-      event->property.window = window;
-      event->property.atom = gdk_x11_xatom_to_atom_for_display (display, xevent->xproperty.atom);
-      event->property.time = xevent->xproperty.time;
-      event->property.state = xevent->xproperty.state;
-
       if (xevent->xproperty.atom == gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_STATE") ||
          xevent->xproperty.atom == gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_DESKTOP"))
         {
           /* If window state changed, then synthesize those events. */
-          gdk_check_wm_state_changed (event->property.window);
+          gdk_check_wm_state_changed (window);
         }
       
+      if (window_private->event_mask & GDK_PROPERTY_CHANGE_MASK) 
+       {
+         event->property.type = GDK_PROPERTY_NOTIFY;
+         event->property.window = window;
+         event->property.atom = gdk_x11_xatom_to_atom_for_display (display, xevent->xproperty.atom);
+         event->property.time = xevent->xproperty.time;
+         event->property.state = xevent->xproperty.state;
+       }
+      else
+       return_val = FALSE;
+
       break;
       
     case SelectionClear:
index c3cbbe47dbc09395100571bc1d003cc154a92fa4..903afe68ab9e2521ccab70b75a9c423a6782c617 100644 (file)
@@ -445,7 +445,7 @@ gdk_window_new (GdkWindow     *parent,
     visual = gdk_screen_get_system_visual (screen);
   xvisual = ((GdkVisualPrivate*) visual)->xvisual;
   
-  xattributes.event_mask = StructureNotifyMask;
+  xattributes.event_mask = StructureNotifyMask | PropertyChangeMask;
   for (i = 0; i < _gdk_nenvent_masks; i++)
     {
       if (attributes->event_mask & (1 << (i + 1)))
@@ -2595,7 +2595,7 @@ gdk_window_set_events (GdkWindow       *window,
   if (!GDK_WINDOW_DESTROYED (window))
     {
       GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
-      xevent_mask = StructureNotifyMask;
+      xevent_mask = StructureNotifyMask | PropertyChangeMask;
       for (i = 0; i < _gdk_nenvent_masks; i++)
        {
          if (event_mask & (1 << (i + 1)))