Also grab the mouse pointer in full screen as some window managers like to
do special things with buttons combined with modifiers. The user probably
wants to propagate these to the server though.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4808 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx
index abd38c9..41abf6b 100644
--- a/vncviewer/DesktopWindow.cxx
+++ b/vncviewer/DesktopWindow.cxx
@@ -332,6 +332,16 @@
vlog.error(_("Failure grabbing keyboard"));
}
}
+
+ // We also need to grab the pointer as some WMs like to grab buttons
+ // combined with modifies (e.g. Alt+Button0 in metacity).
+ ret = XGrabPointer(fl_display, fl_xid(this), True,
+ ButtonPressMask|ButtonReleaseMask|
+ ButtonMotionMask|PointerMotionMask,
+ GrabModeAsync, GrabModeAsync,
+ None, None, CurrentTime);
+ if (ret)
+ vlog.error(_("Failure grabbing mouse"));
#endif
}
@@ -349,6 +359,7 @@
if (Fl::grab())
return;
+ XUngrabPointer(fl_display, fl_event_time);
XUngrabKeyboard(fl_display, fl_event_time);
#endif
}