https://bugs.kde.org/show_bug.cgi?id=366609
Martin Gräßlin <mgraess...@kde.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|CONFIRMED |RESOLVED Latest Commit| |https://commits.kde.org/kwi | |n/1193b0da771a5d1042bf2aed0 | |a2727f89ddf488e Resolution|--- |FIXED Version Fixed In| |5.10 --- Comment #9 from Martin Gräßlin <mgraess...@kde.org> --- Git commit 1193b0da771a5d1042bf2aed0a2727f89ddf488e by Martin Gräßlin. Committed on 07/04/2017 at 14:14. Pushed by graesslin into branch 'master'. Initial support for popup window handling Summary: So far KWin did not properly handle popup windows. That is when a popup surface got created and a click outside the surface happened KWin did not send out the popupDone Wayland event. This change makes KWin aware of whether a surface is a popup and tracks through a new PopupInputFilter whether there are popup windows. In case there are popups the new filter waits for mouse press events and cancels the popups if the press does not happen on any surface belonging to the same client. To quote the relevant section of the Wayland documentation: The popup grab continues until the window is destroyed or a mouse button is pressed in any other client's window. A click in any of the client's surfaces is reported as normal, however, clicks in other clients' surfaces will be discarded and trigger the callback. So far the support is still incomplete. Not yet implemented are: * support xdg_shell popup windows * verifying whether the popup is allowed to be a popup * cancel the popup on more global interactions like screen lock or kwin effect FIXED-IN: 5.10 Test Plan: Auto test and manual testing with QtWayland client Reviewers: #plasma, #kwin Subscribers: plasma-devel, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D5177 M +1 -0 CMakeLists.txt M +81 -0 autotests/integration/pointer_input.cpp M +2 -0 input.cpp M +0 -1 pointer_input.cpp A +80 -0 popup_input_filter.cpp [License: GPL (v2/3)] A +50 -0 popup_input_filter.h [License: GPL (v2/3)] M +16 -0 shell_client.cpp M +3 -0 shell_client.h M +26 -0 toplevel.h https://commits.kde.org/kwin/1193b0da771a5d1042bf2aed0a2727f89ddf488e -- You are receiving this mail because: You are watching all bug changes.