D5177: Initial support for popup window handling

Martin Gräßlin noreply at phabricator.kde.org
Sat Mar 25 17:49:18 UTC 2017


graesslin created this revision.
Restricted Application added a project: KWin.
Restricted Application added subscribers: kwin, plasma-devel.

REVISION 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
  
  BUG: 366609
  FIXED-IN: 5.10

TEST PLAN
  Auto test and manual testing with QtWayland client

REPOSITORY
  R108 KWin

BRANCH
  popup-filter

REVISION DETAIL
  https://phabricator.kde.org/D5177

AFFECTED FILES
  CMakeLists.txt
  autotests/integration/pointer_input.cpp
  input.cpp
  pointer_input.cpp
  popup_input_filter.cpp
  popup_input_filter.h
  shell_client.cpp
  shell_client.h
  toplevel.h

To: graesslin, #plasma, #kwin
Cc: plasma-devel, kwin, progwolff, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170325/0328c34e/attachment.html>


More information about the Plasma-devel mailing list