[PATCH 7/7] winex11.drv: Disable XI2 when virtual desktop is out of focus.

Derek Lesho dereklesho52 at gmail.com
Tue Jun 25 22:32:09 CDT 2019


Signed-off-by: Derek Lesho <dereklesho52 at Gmail.com>
---
 dlls/winex11.drv/event.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index 6054f645c4..30988be028 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -762,7 +762,11 @@ static BOOL X11DRV_FocusIn( HWND hwnd, XEvent *xev )
     TRACE( "win %p xwin %lx detail=%s\n", hwnd, event->window, focus_details[event->detail] );
 
     if (event->detail == NotifyPointer) return FALSE;
-    if (hwnd == GetDesktopWindow()) return FALSE;
+    if (hwnd == GetDesktopWindow())
+    {
+        X11DRV_XInput2_Enable();
+        return FALSE;
+    }
 
     if ((xic = X11DRV_get_ic( hwnd ))) XSetICFocus( xic );
     if (use_take_focus)
@@ -800,7 +804,11 @@ static void focus_out( Display *display , HWND hwnd )
 
     if (root_window != DefaultRootWindow(display))
     {
-        if (hwnd == GetDesktopWindow()) reset_clipping_window();
+        if (hwnd == GetDesktopWindow())
+        {
+            reset_clipping_window();
+            X11DRV_XInput2_Disable();
+        }
         return;
     }
     if (hwnd != GetForegroundWindow()) return;
-- 
2.21.0




More information about the wine-devel mailing list