diff --git a/ChangeLog b/ChangeLog index 8903190434..377010e46b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,24 @@ +Wed Feb 27 19:16:50 2002 Owen Taylor + + * gdk/x11/gdkwindow-x11.c (gdk_window_new): + * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): + * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_new): + * gdk/gdkwindow.h (struct _GdkWindowObject): + * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events): + Save the window's event mask in window->event_mask. + + * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only + generate expose events if GDK_EXPOSE_MASK is included + window->event_mask. (#54506) + Wed Feb 27 18:50:29 2002 Owen Taylor * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change events to be sent to unrealized widgets; they aren't really normal events in that they have anything to - do with widget->window. (#72914) + do with widget->window. (#72914, Andreas J. Guelzow) Wed Feb 27 18:39:25 2002 Owen Taylor diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 8903190434..377010e46b 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,9 +1,24 @@ +Wed Feb 27 19:16:50 2002 Owen Taylor + + * gdk/x11/gdkwindow-x11.c (gdk_window_new): + * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): + * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_new): + * gdk/gdkwindow.h (struct _GdkWindowObject): + * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events): + Save the window's event mask in window->event_mask. + + * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only + generate expose events if GDK_EXPOSE_MASK is included + window->event_mask. (#54506) + Wed Feb 27 18:50:29 2002 Owen Taylor * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change events to be sent to unrealized widgets; they aren't really normal events in that they have anything to - do with widget->window. (#72914) + do with widget->window. (#72914, Andreas J. Guelzow) Wed Feb 27 18:39:25 2002 Owen Taylor diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 8903190434..377010e46b 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,9 +1,24 @@ +Wed Feb 27 19:16:50 2002 Owen Taylor + + * gdk/x11/gdkwindow-x11.c (gdk_window_new): + * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): + * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_new): + * gdk/gdkwindow.h (struct _GdkWindowObject): + * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events): + Save the window's event mask in window->event_mask. + + * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only + generate expose events if GDK_EXPOSE_MASK is included + window->event_mask. (#54506) + Wed Feb 27 18:50:29 2002 Owen Taylor * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change events to be sent to unrealized widgets; they aren't really normal events in that they have anything to - do with widget->window. (#72914) + do with widget->window. (#72914, Andreas J. Guelzow) Wed Feb 27 18:39:25 2002 Owen Taylor diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 8903190434..377010e46b 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,9 +1,24 @@ +Wed Feb 27 19:16:50 2002 Owen Taylor + + * gdk/x11/gdkwindow-x11.c (gdk_window_new): + * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): + * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_new): + * gdk/gdkwindow.h (struct _GdkWindowObject): + * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events): + Save the window's event mask in window->event_mask. + + * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only + generate expose events if GDK_EXPOSE_MASK is included + window->event_mask. (#54506) + Wed Feb 27 18:50:29 2002 Owen Taylor * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change events to be sent to unrealized widgets; they aren't really normal events in that they have anything to - do with widget->window. (#72914) + do with widget->window. (#72914, Andreas J. Guelzow) Wed Feb 27 18:39:25 2002 Owen Taylor diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 8903190434..377010e46b 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,9 +1,24 @@ +Wed Feb 27 19:16:50 2002 Owen Taylor + + * gdk/x11/gdkwindow-x11.c (gdk_window_new): + * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): + * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_new): + * gdk/gdkwindow.h (struct _GdkWindowObject): + * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events): + Save the window's event mask in window->event_mask. + + * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only + generate expose events if GDK_EXPOSE_MASK is included + window->event_mask. (#54506) + Wed Feb 27 18:50:29 2002 Owen Taylor * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change events to be sent to unrealized widgets; they aren't really normal events in that they have anything to - do with widget->window. (#72914) + do with widget->window. (#72914, Andreas J. Guelzow) Wed Feb 27 18:39:25 2002 Owen Taylor diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 8903190434..377010e46b 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,9 +1,24 @@ +Wed Feb 27 19:16:50 2002 Owen Taylor + + * gdk/x11/gdkwindow-x11.c (gdk_window_new): + * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): + * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_new): + * gdk/gdkwindow.h (struct _GdkWindowObject): + * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events): + Save the window's event mask in window->event_mask. + + * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only + generate expose events if GDK_EXPOSE_MASK is included + window->event_mask. (#54506) + Wed Feb 27 18:50:29 2002 Owen Taylor * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change events to be sent to unrealized widgets; they aren't really normal events in that they have anything to - do with widget->window. (#72914) + do with widget->window. (#72914, Andreas J. Guelzow) Wed Feb 27 18:39:25 2002 Owen Taylor diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 8903190434..377010e46b 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,9 +1,24 @@ +Wed Feb 27 19:16:50 2002 Owen Taylor + + * gdk/x11/gdkwindow-x11.c (gdk_window_new): + * gdk/x11/gdkwindow-x11.c (gdk_window_get_events): + * gdk/x11/gdkwindow-x11.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_set_events): + * gdk/win32/gdkwindow-win32.c (gdk_window_new): + * gdk/gdkwindow.h (struct _GdkWindowObject): + * gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_events): + Save the window's event mask in window->event_mask. + + * gdk/gdkwindow.c (gdk_window_process_updates_internal): Only + generate expose events if GDK_EXPOSE_MASK is included + window->event_mask. (#54506) + Wed Feb 27 18:50:29 2002 Owen Taylor * gtk/gtkwidget.c (gtk_widget_event): Allow focus-change events to be sent to unrealized widgets; they aren't really normal events in that they have anything to - do with widget->window. (#72914) + do with widget->window. (#72914, Andreas J. Guelzow) Wed Feb 27 18:39:25 2002 Owen Taylor diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index c79f198089..8199e09bf6 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -2065,7 +2065,8 @@ gdk_window_process_updates_internal (GdkWindow *window) GdkRegion *update_area = private->update_area; private->update_area = NULL; - if (_gdk_event_func && gdk_window_is_viewable (window)) + if (_gdk_event_func && gdk_window_is_viewable (window) && + (private->event_mask & GDK_EXPOSURE_MASK)) { GdkEvent event; GdkRectangle window_rect; diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h index b1e42ce2dc..7235ce2e36 100644 --- a/gdk/gdkwindow.h +++ b/gdk/gdkwindow.h @@ -260,6 +260,8 @@ struct _GdkWindowObject guint modal_hint : 1; guint destroyed : 2; + + GdkEventMask event_mask; }; struct _GdkWindowObjectClass diff --git a/gdk/linux-fb/gdkwindow-fb.c b/gdk/linux-fb/gdkwindow-fb.c index 13244b7647..44a674cf6e 100644 --- a/gdk/linux-fb/gdkwindow-fb.c +++ b/gdk/linux-fb/gdkwindow-fb.c @@ -1751,6 +1751,8 @@ gdk_window_set_events (GdkWindow *window, if (!GDK_WINDOW_DESTROYED (window)) GDK_WINDOW_IMPL_FBDATA (window)->event_mask = event_mask; + + GDK_WINDOW_OBJECT (window)->event_mask = event_mask; } void diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index a0d8d55826..91221942ec 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -487,6 +487,7 @@ gdk_window_new (GdkWindow *parent, title = "GDK client window"; impl->event_mask = GDK_STRUCTURE_MASK | attributes->event_mask; + private->event_mask = impl->event_mask; if (private->parent && private->parent->guffaw_gravity) { @@ -1941,6 +1942,7 @@ gdk_window_set_events (GdkWindow *window, if (GDK_WINDOW_DESTROYED (window)) return; + GDK_WINDOW_OBJECT (window)->event_mask = event_mask; GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl)->event_mask = event_mask; } diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 37de3ff28a..21bcc8b0a9 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -414,6 +414,7 @@ gdk_window_new (GdkWindow *parent, if (attributes->event_mask & (1 << (i + 1))) xattributes.event_mask |= _gdk_event_mask_table[i]; } + private->event_mask = attributes->event_mask; if (xattributes.event_mask) xattributes_mask |= CWEventMask; @@ -2466,6 +2467,8 @@ gdk_window_get_events (GdkWindow *window) if (attrs.your_event_mask & _gdk_event_mask_table[i]) event_mask |= 1 << (i + 1); } + + GDK_WINDOW_OBJECT (window)->event_mask = event_mask; return event_mask; } @@ -2494,6 +2497,7 @@ gdk_window_set_events (GdkWindow *window, if (!GDK_WINDOW_DESTROYED (window)) { + GDK_WINDOW_OBJECT (window)->event_mask = event_mask; xevent_mask = StructureNotifyMask; for (i = 0; i < _gdk_nenvent_masks; i++) {