[gtk+] win32: Always pass a window to the default event filters
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] win32: Always pass a window to the default event filters
- Date: Thu, 11 Feb 2016 02:46:53 +0000 (UTC)
commit 033fb5a879b0d3043e768e278e418255467d81d3
Author: Benjamin Otte <otte gnome org>
Date: Sun Feb 7 23:48:46 2016 +0100
win32: Always pass a window to the default event filters
This has to happen or the event filter cannot identify what type
of display the event is from (ie if it's an XEvent, a broadway
event or a win32 MSG.
gdk/win32/gdkevents-win32.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
---
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index 109fc55..7f0a138 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -936,8 +936,7 @@ apply_event_filters (GdkWindow *window,
GList *tmp_list;
event = gdk_event_new (GDK_NOTHING);
- if (window != NULL)
- event->any.window = g_object_ref (window);
+ event->any.window = g_object_ref (window);
((GdkEventPrivate *)event)->flags |= GDK_EVENT_PENDING;
/* I think GdkFilterFunc semantics require the passed-in event
@@ -1913,11 +1912,15 @@ gdk_event_translate (MSG *msg,
int i;
+ window = gdk_win32_handle_table_lookup (msg->hwnd);
+
if (_gdk_default_filters)
{
/* Apply global filters */
- GdkFilterReturn result = apply_event_filters (NULL, msg, &_gdk_default_filters);
+ GdkFilterReturn result = apply_event_filters (window ? window : gdk_screen_get_root_window
(gdk_display_get_default_screen (_gdk_display)),
+ msg,
+ &_gdk_default_filters);
/* If result is GDK_FILTER_CONTINUE, we continue as if nothing
* happened. If it is GDK_FILTER_REMOVE or GDK_FILTER_TRANSLATE,
@@ -1927,8 +1930,6 @@ gdk_event_translate (MSG *msg,
return TRUE;
}
- window = gdk_win32_handle_table_lookup (msg->hwnd);
-
if (window == NULL)
{
/* XXX Handle WM_QUIT here ? */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]