aboutsummaryrefslogtreecommitdiffstats
path: root/vncviewer/Viewport.cxx
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2011-05-26 14:48:29 +0000
committerPierre Ossman <ossman@cendio.se>2011-05-26 14:48:29 +0000
commit407a5c3ce60e3e9d361c6d1e8a2a14c39946707e (patch)
tree46937e98dd44f48f4d79b1fb30d2f5bb9940a0a3 /vncviewer/Viewport.cxx
parentad9d1aef3bbcb011b40411f2b720766c01376254 (diff)
downloadtigervnc-407a5c3ce60e3e9d361c6d1e8a2a14c39946707e.tar.gz
tigervnc-407a5c3ce60e3e9d361c6d1e8a2a14c39946707e.zip
Implement support for grabbing the keyboard when in full screen mode.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4449 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'vncviewer/Viewport.cxx')
-rw-r--r--vncviewer/Viewport.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx
index beee8ba1..f522ca0d 100644
--- a/vncviewer/Viewport.cxx
+++ b/vncviewer/Viewport.cxx
@@ -605,6 +605,13 @@ void Viewport::popupContextMenu()
const Fl_Menu_Item *m;
char buffer[1024];
+ // FIXME: Hacky workaround for the fact that menus grab and ungrab the
+ // keyboard. Releasing focus here triggers some events on ungrab
+ // that DesktopWindow can catch and trigger some voodoo.
+ // See DesktopWindow::handle().
+ if (window()->contains(Fl::focus()))
+ Fl::focus(NULL);
+
contextMenu->position(Fl::event_x(), Fl::event_y());
m = contextMenu->popup();