From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winex11.drv/event.c | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-)
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index f4cafd679b5..bd917ae49c9 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -256,6 +256,40 @@ static Bool filter_event( Display *display, XEvent *event, char *arg ) }
+/*********************************************************************** + * call_event_handler + */ +static inline BOOL call_event_handler( Display *display, XEvent *event ) +{ + HWND hwnd; + XEvent *prev; + struct x11drv_thread_data *thread_data; + BOOL ret; + + if (!handlers[event->type]) + { + TRACE( "%s for win %lx, ignoring\n", dbgstr_event( event->type ), event->xany.window ); + return FALSE; /* no handler, ignore it */ + } + +#ifdef GenericEvent + if (event->type == GenericEvent) hwnd = 0; else +#endif + if (XFindContext( display, event->xany.window, winContext, (char **)&hwnd ) != 0) + hwnd = 0; /* not for a registered window */ + if (!hwnd && event->xany.window == root_window) hwnd = NtUserGetDesktopWindow(); + + TRACE( "%lu %s for hwnd/window %p/%lx\n", + event->xany.serial, dbgstr_event( event->type ), hwnd, event->xany.window ); + thread_data = x11drv_thread_data(); + prev = thread_data->current_event; + thread_data->current_event = event; + ret = handlers[event->type]( hwnd, event ); + thread_data->current_event = prev; + return ret; +} + + enum event_merge_action { MERGE_DISCARD, /* discard the old event */ @@ -364,40 +398,6 @@ static enum event_merge_action merge_events( XEvent *prev, XEvent *next ) }
-/*********************************************************************** - * call_event_handler - */ -static inline BOOL call_event_handler( Display *display, XEvent *event ) -{ - HWND hwnd; - XEvent *prev; - struct x11drv_thread_data *thread_data; - BOOL ret; - - if (!handlers[event->type]) - { - TRACE( "%s for win %lx, ignoring\n", dbgstr_event( event->type ), event->xany.window ); - return FALSE; /* no handler, ignore it */ - } - -#ifdef GenericEvent - if (event->type == GenericEvent) hwnd = 0; else -#endif - if (XFindContext( display, event->xany.window, winContext, (char **)&hwnd ) != 0) - hwnd = 0; /* not for a registered window */ - if (!hwnd && event->xany.window == root_window) hwnd = NtUserGetDesktopWindow(); - - TRACE( "%lu %s for hwnd/window %p/%lx\n", - event->xany.serial, dbgstr_event( event->type ), hwnd, event->xany.window ); - thread_data = x11drv_thread_data(); - prev = thread_data->current_event; - thread_data->current_event = event; - ret = handlers[event->type]( hwnd, event ); - thread_data->current_event = prev; - return ret; -} - - /*********************************************************************** * ProcessEvents (X11DRV.@) */