summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-libs/gtk+/files/gtk+-2.2.2-revert_gtkwidget.patch')
-rw-r--r--x11-libs/gtk+/files/gtk+-2.2.2-revert_gtkwidget.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/x11-libs/gtk+/files/gtk+-2.2.2-revert_gtkwidget.patch b/x11-libs/gtk+/files/gtk+-2.2.2-revert_gtkwidget.patch
new file mode 100644
index 000000000000..653502656fc2
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-2.2.2-revert_gtkwidget.patch
@@ -0,0 +1,72 @@
+--- gtk+-2.2.2/gtk/gtkwidget.c 2003-06-09 03:54:48.000000000 +0200
++++ gtk+-2.2.1/gtk/gtkwidget.c 2002-12-19 00:45:51.000000000 +0100
+@@ -463,7 +463,7 @@
+ FALSE,
+ G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class,
+- PROP_IS_FOCUS,
++ PROP_HAS_FOCUS,
+ g_param_spec_boolean ("is_focus",
+ _("Is focus"),
+ _("Whether the widget is the focus widget within the toplevel"),
+@@ -3038,60 +3038,12 @@
+ return gtk_widget_event_internal (widget, event);
+ }
+
+-static gboolean
+-event_window_is_still_viewable (GdkEvent *event)
+-{
+- /* Check that we think the event's window is viewable before
+- * delivering the event, to prevent suprises. We do this here
+- * at the last moment, since the event may have been queued
+- * up behind other events, held over a recursive main loop, etc.
+- */
+- switch (event->type)
+- {
+- case GDK_EXPOSE:
+- case GDK_MOTION_NOTIFY:
+- case GDK_BUTTON_PRESS:
+- case GDK_2BUTTON_PRESS:
+- case GDK_3BUTTON_PRESS:
+- case GDK_KEY_PRESS:
+- case GDK_ENTER_NOTIFY:
+- case GDK_PROXIMITY_IN:
+- case GDK_SCROLL:
+- return event->any.window && gdk_window_is_viewable (event->any.window);
+-
+-#if 0
+- /* The following events are the second half of paired events;
+- * we always deliver them to deal with widgets that clean up
+- * on the second half.
+- */
+- case GDK_BUTTON_RELEASE:
+- case GDK_KEY_RELEASE:
+- case GDK_LEAVE_NOTIFY:
+- case GDK_PROXIMITY_OUT:
+-#endif
+-
+- default:
+- /* Remaining events would make sense on an not-viewable window,
+- * or don't have an associated window.
+- */
+- return TRUE;
+- }
+-}
+-
+ static gint
+ gtk_widget_event_internal (GtkWidget *widget,
+ GdkEvent *event)
+ {
+ gboolean return_val = FALSE;
+
+- /* We check only once for is-still-visible; if someone
+- * hides the window in on of the signals on the widget,
+- * they are responsible for returning TRUE to terminate
+- * handling.
+- */
+- if (!event_window_is_still_viewable (event))
+- return TRUE;
+-
+ g_object_ref (widget);
+
+ g_signal_emit (widget, widget_signals[EVENT], 0, event, &return_val);