I'm sure everyone here is already familiar with this problem, as it has been around for a decade at least. I am talking about not being to switch to another window from a full screen game (even though the issue itself has nothing to do with full screen windows).

Once XGrabPointer() is called, the WM loses control not only of the mouse but also of the keyboard. Although there are situations where applications may require extended keyboard control as well (e.g. virtual machines and remote desktops), XGrabPointer is extensively used by games and other applications that simply require extended mouse control.

Keys that are currently annoyingly broken when the input is grabbed:
- Alt+Tab, Alt+Left/Right, Alt+F4 or other such combinations used in WM for window control
- Volume controls, power button and other such keys

The usual response to this problem is that it is a bug in the game and that it should be fixed there. I think this solution is invalid because there is no other way to get the required functionality (being able to track relative mouse movement without worrying about the pointer escaping from the application). Even though such functionality could be added, all the existing games would stay broken and it would take a long time until game programming libraries and other software adopted the new way, not to mention that there are plenty of existing closed source games that are no longer maintained by their vendors. Maybe some consider that the game should handle the event by itself, but there nothing sensible the game could do in case of e.g. Alt+Tab.

While I cannot fully understand how X11 events behave, I would think that there should be a way for WM to specify key combinations that it will receive no matter what any application started later does. With such a system the WM could define its most important access keys with that interface. If nothing else, Ctrl+Alt+Delete might be such an escape sequence, but this alone would not provide optimal user experience because Alt+Tab would still be broken.

On the other hand, always keeping Alt+Tab to the WM might disturb remote desktop usage and other things. One option to consider is adopting the Super key as a general WM accelerator key as an alternative to Alt. Since it is generally not used by any application software, keeping it to the WM would work rather well. One could still use Alt instead to control a virtual machine.

Another thing to consider is that most WM shortcuts should indeed be disabled for games. For example, Alt+drag is commonly used in RTS games for giving orders but currently that doesn't work without grabbing because the WM thinks that one is trying to move the window.

Kiosk applications would also be affected, as they may currently think that they can securely grab all input (except Ctrl+Alt+BS, SysRq and VT switching which need to be disabled elsewhere), so care must be taken with any change to the grabbing behavior.

So, can this problem finally be fixed, so that maybe 2011 would be the year of the Linux Desktop :-)

_______________________________________________
xdg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xdg

Reply via email to