diff options
author | Owen Taylor <otaylor@redhat.com> | 1999-09-16 18:59:24 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1999-09-16 18:59:24 +0000 |
commit | 661d0ad067cfa4a5df3ad0a7fe373bea8c8889ad (patch) | |
tree | 91172ce514b849a780e1c791b8f3cfc8e251dd0a /gtk | |
parent | f04d58dd298e1ee3d71f0b2c005d242500ecc6ce (diff) | |
download | gdk-pixbuf-661d0ad067cfa4a5df3ad0a7fe373bea8c8889ad.tar.gz |
Added workaround for old widgets that don't propagate draws to all
Wed Sep 15 02:52:19 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_event): Added workaround
for old widgets that don't propagate draws to all
children. (Namely gnome-dock for gnome-libs <= 1.0.16)
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkwidget.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index ed47156b7..42f429c8b 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -2799,7 +2799,7 @@ gtk_widget_event (GtkWidget *widget, */ if (event->any.send_event) parent = NULL; - else + else if (event->any.window) { parent = widget; while (parent) @@ -2808,6 +2808,20 @@ gtk_widget_event (GtkWidget *widget, break; parent = parent->parent; } + /* <HACK> gnome-dock didn't propagate draws to torn off + * children. So don't consider those ancestors. + */ + if (parent) + { + GdkWindow *parent_window = event->any.window; + + while (parent_window && parent_window != parent->window) + parent_window = gdk_window_get_parent (parent_window); + + if (!parent_window) + parent = NULL; + } + /* </HACK> */ } if (!event->any.window || parent) { |