D15234: Remove breaking pointer constraints functionality
Roman Gilg <[email protected]>
| Newsgroups | gmane.comp.kde.devel.kwin |
|---|---|
| Message-ID | <[email protected]> |
romangg added a comment. In D15234#323471 <https://phabricator.kde.org/D15234#323471>, @ngraham wrote: > I'm not that familiar with the intention and basis for the pointer constraint feature in the first place, so before I offer any UX opinions, can someone tell me why it exists? What's it needed for? Since it exists on Wayland but not X, is this a purely technical matter, or is there a good reason for having it but it was unimplementable in X? Imagine a 3D ego-shooter like Counter Strike. When the player moves his mouse the in-game camera should spin around. What you don't want is that the compositor does not allow any more motion events to go to the client because the mouse cursor hit the screen edge. On X clients are able to manipulate the pointer position (warp) and event delivery (grab) as they please. This is a security risk and on Wayland we have for that the secure pointer constraining protocol (lock and confine). Any client can request such a pointer constraining and the compositor decides if it wants to allow it and for how long. Normally it will only allow it when the client has pointer focus and is active. The question touched here is how should the user be able to unconstrain a constraining client again. It should be implicitly unconstrained when one of the conditions needed for constraining in the first place is not met anymore. For example when you hit Alt+Tab and by that the client loses pointer focus. Or when the client is killed, e.g. a full screen game through main menu going back to desktop. But is it also necessary that the user can unconstrain the pointer explicity through some specific key combination? We do it this way until now by pressing Esc for 5 seconds. I want to remove this functionality completely because in 99% of the cases the constraining will be gone automatically, unconstraining by pressing Esc for 5 seconds is a work-flow very uncommon to users (and most users don't even know what it means), the info message announcing it is shown annoyingly often on Xwayland and in the few cases where a rogue client is trying to harm the user or a client froze while constraining, a user can simply hit Meta or Alt+Tab to unconstrain the pointer. REPOSITORY R108 KWin REVISION DETAIL https://phabricator.kde.org/D15234 To: romangg, #kwin, #vdg Cc: ngraham, hein, kwin, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart