summaryrefslogtreecommitdiff
path: root/gdk/win32/gdkevents-win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/win32/gdkevents-win32.c')
-rw-r--r--gdk/win32/gdkevents-win32.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index be4509124..54ca493da 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -2979,6 +2979,9 @@ gdk_event_translate (GdkEvent *event,
window = gdk_window_lookup (xevent->hwnd);
orig_window = window;
+ event->any.window = window;
+ event->any.send_event = FALSE;
+
if (window != NULL)
gdk_drawable_ref (window);
else
@@ -3013,13 +3016,14 @@ gdk_event_translate (GdkEvent *event,
{
/* Check for filters for this window */
GdkFilterReturn result;
- event->any.window = window;
+
result = gdk_event_apply_filters
(xevent, event, ((GdkWindowPrivate *) window)->filters);
if (result != GDK_FILTER_CONTINUE)
{
- return (result == GDK_FILTER_TRANSLATE) ? TRUE : FALSE;
+ return_val = (result == GDK_FILTER_TRANSLATE) ? TRUE : FALSE;
+ goto done;
}
}
@@ -3104,7 +3108,7 @@ gdk_event_translate (GdkEvent *event,
event->client.data.l[1] = xevent->lParam;
break;
}
- goto bypass_switch; /* Ouch */
+ goto done;
}
tmp_list = tmp_list->next;
}
@@ -3163,8 +3167,8 @@ gdk_event_translate (GdkEvent *event,
xevent->lParam));
ignore_WM_CHAR = TRUE;
- keyup_or_down:
+ keyup_or_down:
if (!propagate (&window, xevent,
k_grab_window, k_grab_owner_events, GDK_ALL_EVENTS_MASK,
doesnt_want_key))
@@ -4265,7 +4269,7 @@ gdk_event_translate (GdkEvent *event,
xevent->wParam, xevent->lParam));
}
-bypass_switch:
+done:
if (return_val)
{