aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2019-06-27 23:43:44 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2019-08-27 14:10:16 +0200
commit063813d35549a52358b0df8e5ede4e105f2e4d96 (patch)
treebf61dd1bd2ce00892056b52184102600a5f910e6
parent14d8e0a2a69f2468a49fcb53c4ba7e12cea10b1d (diff)
downloadnx-libs-063813d35549a52358b0df8e5ede4e105f2e4d96.tar.gz
nx-libs-063813d35549a52358b0df8e5ede4e105f2e4d96.tar.bz2
nx-libs-063813d35549a52358b0df8e5ede4e105f2e4d96.zip
Make AutoGrab work in more situations
Especially switchin to/from fullscreen with active AutoGrab was problematic. Works much smoother now.
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Events.c2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Window.c11
2 files changed, 11 insertions, 2 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c
index 020278841..f3e7880c8 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Events.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c
@@ -1699,7 +1699,7 @@ FIXME: Don't enqueue the KeyRelease event if the key was
#endif /* NXAGENT_FIXKEYS */
- if (nxagentOption(AutoGrab))
+ if (nxagentOption(AutoGrab) && !nxagentFullscreenWindow)
{
XlibWindow w;
int revert_to;
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c
index 59b33b6be..80e9bef3b 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Window.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c
@@ -754,7 +754,12 @@ void nxagentSwitchFullscreen(ScreenPtr pScreen, Bool switchOn)
else
{
nxagentFullscreenWindow = None;
- nxagentUngrabPointerAndKeyboard(NULL);
+
+ /* if we had AutoGrab before entering fullscreen reactivate it now */
+ if (nxagentOption(AutoGrab))
+ nxagentGrabPointerAndKeyboard(NULL);
+ else
+ nxagentUngrabPointerAndKeyboard(NULL);
}
}
@@ -1005,6 +1010,10 @@ void nxagentSwitchAllScreens(ScreenPtr pScreen, Bool switchOn)
XMoveResizeWindow(nxagentDisplay, nxagentInputWindows[0], 0, 0,
nxagentOption(Width), nxagentOption(Height));
+ /* if we had AutoGrab before entering fullscreen reactivate it now */
+ if (nxagentOption(AutoGrab))
+ nxagentGrabPointerAndKeyboard(NULL);
+
nxagentSetPrintGeometry(pScreen -> myNum);
}