kwin/autotests/integration
Martin Gräßlin 1193b0da77 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

BUG: 366609
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
2017-04-07 16:14:50 +02:00
..
data Add support for desktopFileName provided by NETWinInfo 2016-10-31 13:19:46 +01:00
effects [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
helper KillWindow support for Wayland windows 2016-11-17 14:06:42 +01:00
scripting Add method unregisterScreenEdge to scripting 2016-10-07 13:29:29 +01:00
activities_test.cpp [autotests] Wrap integration tests in dbus-session-run 2016-09-14 07:59:14 +02:00
CMakeLists.txt Merge branch 'Plasma/5.9' 2017-02-14 07:37:00 +01:00
debug_console_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
decoration_input_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
desktop_window_x11_test.cpp Force windows of type desktop to be opaque 2016-08-10 15:10:22 +02:00
dont_crash_aurorae_destroy_deco.cpp Handle situation of no XDG_RUNTIME_DIR gracefully 2016-07-13 10:00:46 +02:00
dont_crash_cancel_animation.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
dont_crash_empty_deco.cpp Handle situation of no XDG_RUNTIME_DIR gracefully 2016-07-13 10:00:46 +02:00
dont_crash_glxgears.cpp Handle situation of no XDG_RUNTIME_DIR gracefully 2016-07-13 10:00:46 +02:00
dont_crash_no_border.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
globalshortcuts_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
input_stacking_order.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
internal_window.cpp Add support for skipCloseAnimation for internal windows 2017-01-13 19:50:50 +01:00
keyboard_layout_test.cpp Only export the org.kde.keyboard DBus service if there are at least two layouts 2017-02-11 11:37:45 +01:00
kwin_wayland_test.cpp Unpolish QStyle on QApp prior to destroying internal Wayland connection 2016-11-07 11:28:06 +01:00
kwin_wayland_test.h Require Qt 5.7 and remove pre-5.7 code 2017-02-07 20:43:19 +01:00
lockscreen.cpp [autotests] Fix LockScreenTest::testKeyboardShortcut 2017-01-18 20:24:17 +01:00
maximize_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
modifier_only_shortcut_test.cpp Support modifier-only-shortcuts when capslock is on 2017-01-25 13:39:04 +01:00
move_resize_window_test.cpp Merge branch 'Plasma/5.9' 2017-01-30 17:03:46 +01:00
no_xdg_runtime_dir_test.cpp Handle situation of no XDG_RUNTIME_DIR gracefully 2016-07-13 10:00:46 +02:00
plasma_surface_test.cpp Support creation of PlasmaShellSurface prior to ShellSurface 2017-02-07 19:26:36 +01:00
plasmawindow_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
platformcursor.cpp Handle situation of no XDG_RUNTIME_DIR gracefully 2016-07-13 10:00:46 +02:00
pointer_constraints_test.cpp [autotests] Disable OnScreenNotification in PointerConstraintsTest 2016-12-22 19:05:47 +01:00
pointer_input.cpp Initial support for popup window handling 2017-04-07 16:14:50 +02:00
quick_tiling_test.cpp [autotests] Add test case for quick tiling on X11 2017-02-14 07:29:38 +01:00
scene_opengl_test.cpp Support restarting the OpenGL compositor on Wayland 2016-07-20 14:08:23 +02:00
scene_qpainter_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
screen_changes_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
screenedge_client_show_test.cpp [autotests] Add test case for showing auto-hiding panel through swipe gesture 2017-03-28 22:01:16 +02:00
shade_test.cpp Handle situation of no XDG_RUNTIME_DIR gracefully 2016-07-13 10:00:46 +02:00
shell_client_test.cpp [autotests] Adjust ShellClientTest to changes in 634dfc09e4 2017-03-29 06:49:12 +02:00
start_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
struts_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
tabbox_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
test_helpers.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
touch_input_test.cpp Add workaround for touch input offset for decorated windows 2017-01-25 13:58:28 +01:00
transient_no_input_test.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
transient_placement.cpp [autotests/integration] Use socketpair for Wayland connection 2016-12-15 21:31:27 +01:00
window_rules_test.cpp Match window role in Rules in a case insensitive manner 2016-09-13 08:37:26 +02:00
window_selection_test.cpp Add support for interactive selection through touch events 2017-03-31 07:44:38 +02:00
x11_client_test.cpp Simplify the window title passed in from the window system 2016-11-07 11:26:48 +01:00
xclipboardsync_test.cpp Handle situation of no XDG_RUNTIME_DIR gracefully 2016-07-13 10:00:46 +02:00
xwayland_input_test.cpp Warp the xcb pointer whenever pointer leaves an X11 surface 2016-08-24 13:12:06 +02:00