From 8349cf08317bc27a6d09a0d6401650726311cb45 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 27 Sep 2009 23:24:58 +0000 Subject: [PATCH] Fixed bug #716 Armin Burgmeier 2009-03-15 04:35:45 PDT When I hold a mouse button down on another (non-SDL) window, then move the mouse over an SDL window and releasing the mouse button there, then the application does not receive an SDL_ACTIVEEVENT with state SDL_APPMOUSEFOCUS and gain 1. Furthermore, SDL_GetAppState() reports the application not having mouse focus until moving the mouse out of the window and back in again. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403927 --- src/video/x11/SDL_x11events.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/video/x11/SDL_x11events.c b/src/video/x11/SDL_x11events.c index eb23db7cd..ee79f54fb 100644 --- a/src/video/x11/SDL_x11events.c +++ b/src/video/x11/SDL_x11events.c @@ -93,16 +93,13 @@ X11_DispatchEvent(_THIS) if (xevent.xcrossing.mode == NotifyUngrab) printf("Mode: NotifyUngrab\n"); #endif - if ((xevent.xcrossing.mode != NotifyGrab) && - (xevent.xcrossing.mode != NotifyUngrab)) { #if 1 - /* FIXME: Should we reset data for all mice? */ - for (i = 0; i < SDL_GetNumMice(); ++i) { - SDL_Mouse *mouse = SDL_GetMouse(i); - SDL_SetMouseFocus(mouse->id, data->windowID); - } -#endif + /* FIXME: Should we reset data for all mice? */ + for (i = 0; i < SDL_GetNumMice(); ++i) { + SDL_Mouse *mouse = SDL_GetMouse(i); + SDL_SetMouseFocus(mouse->id, data->windowID); } +#endif } break; @@ -118,15 +115,13 @@ X11_DispatchEvent(_THIS) if (xevent.xcrossing.mode == NotifyUngrab) printf("Mode: NotifyUngrab\n"); #endif - if ((xevent.xcrossing.mode != NotifyGrab) && - (xevent.xcrossing.mode != NotifyUngrab) && - (xevent.xcrossing.detail != NotifyInferior)) { + if (xevent.xcrossing.detail != NotifyInferior) { #if 1 /* FIXME: Should we reset data for all mice? */ - for (i = 0; i < SDL_GetNumMice(); ++i) { - SDL_Mouse *mouse = SDL_GetMouse(i); - SDL_SetMouseFocus(mouse->id, 0); - } + for (i = 0; i < SDL_GetNumMice(); ++i) { + SDL_Mouse *mouse = SDL_GetMouse(i); + SDL_SetMouseFocus(mouse->id, 0); + } #endif } }