1--- vnc_unixsrc.orig/vncviewer/fullscreen.c	2003-10-09 05:23:49.000000000 -0400
2+++ vnc_unixsrc/vncviewer/fullscreen.c	2004-12-26 21:21:44.000000000 -0500
3@@ -173,9 +173,15 @@
4   XtVaSetValues(popup, XtNoverrideRedirect, True, NULL);
5
6   /* Try to get the input focus. */
7-
8+
9+#if 0
10   XSetInputFocus(dpy, DefaultRootWindow(dpy), RevertToPointerRoot,
11 		 CurrentTime);
12+#else
13+  XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot,
14+                 CurrentTime);
15+#endif
16+
17
18   /* Optionally, grab the keyboard. */
19
20@@ -184,6 +190,10 @@
21 		     GrabModeAsync, CurrentTime) != GrabSuccess) {
22     fprintf(stderr, "XtGrabKeyboard() failed.\n");
23   }
24+if (getenv("VNCVIEWER_GRAB_SERVER") != NULL) { /* runge bot of FullScreenOn */
25+        fprintf(stderr, "calling XGrabServer(dpy)\n");
26+        XGrabServer(dpy);
27+}
28 }
29
30
31@@ -210,6 +220,11 @@
32
33   appData.fullScreen = False;
34
35+if (getenv("VNCVIEWER_GRAB_SERVER") != NULL) { /* runge top of FullScreenOff */
36+        fprintf(stderr, "calling XUngrabServer(dpy)\n");
37+        XUngrabServer(dpy);
38+}
39+
40   if (appData.grabKeyboard)
41     XtUngrabKeyboard(desktop, CurrentTime);
42
43