diff options
author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2018-11-13 07:48:53 +0100 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2019-06-24 09:42:07 +0000 |
commit | 2fc7760ceed6f948d4f3c1dd74d4e57c7df05eea (patch) | |
tree | 70a9054605fe6c421121c12e3e4abdad7b7b99a3 | |
parent | f2d2d473b71dbdb339c80f068c5cb3e529af2478 (diff) | |
download | mutter-2fc7760ceed6f948d4f3c1dd74d4e57c7df05eea.tar.gz |
tests, stacking: Add tests with no-input and no-take-focus windows
When a window with no frame, that doesn't accept focus and that has no
take-focus atom set is destroyed, we ended up in not changing the current_focus
window, causing a crash.
Added test cases that verify this situation.
Related to https://gitlab.gnome.org/GNOME/mutter/issues/308
https://gitlab.gnome.org/GNOME/mutter/merge_requests/307
4 files changed, 67 insertions, 0 deletions
diff --git a/src/tests/meson.build b/src/tests/meson.build index ac73f9916..3d0a3f7a3 100644 --- a/src/tests/meson.build +++ b/src/tests/meson.build @@ -111,6 +111,9 @@ stacking_tests = [ 'basic-wayland', 'client-side-decorated', 'closed-transient', + 'closed-transient-no-input-no-take-focus-parent', + 'closed-transient-no-input-no-take-focus-parents', + 'closed-transient-no-input-parent', 'minimized', 'mixed-windows', 'set-parent', diff --git a/src/tests/stacking/closed-transient-no-input-no-take-focus-parent.metatest b/src/tests/stacking/closed-transient-no-input-no-take-focus-parent.metatest new file mode 100644 index 000000000..4249c32b9 --- /dev/null +++ b/src/tests/stacking/closed-transient-no-input-no-take-focus-parent.metatest @@ -0,0 +1,21 @@ +new_client 1 x11 +create 1/1 +show 1/1 + +create 1/2 csd +set_parent 1/2 1 +can_take_focus 1/2 false +accept_focus 1/2 false +show 1/2 + +create 1/3 csd +set_parent 1/3 2 +show 1/3 + +wait +assert_stacking 1/1 1/2 1/3 + +destroy 1/3 + +wait +assert_stacking 1/1 1/2 diff --git a/src/tests/stacking/closed-transient-no-input-no-take-focus-parents.metatest b/src/tests/stacking/closed-transient-no-input-no-take-focus-parents.metatest new file mode 100644 index 000000000..a61c64055 --- /dev/null +++ b/src/tests/stacking/closed-transient-no-input-no-take-focus-parents.metatest @@ -0,0 +1,23 @@ +new_client 1 x11 +create 1/1 +accept_focus 1/1 false +can_take_focus 1/1 false +show 1/1 + +create 1/2 csd +set_parent 1/2 1 +can_take_focus 1/2 false +accept_focus 1/2 false +show 1/2 + +create 1/3 csd +set_parent 1/3 2 +show 1/3 + +wait +assert_stacking 1/1 1/2 1/3 + +destroy 1/3 +wait + +assert_stacking 1/1 1/2 diff --git a/src/tests/stacking/closed-transient-no-input-parent.metatest b/src/tests/stacking/closed-transient-no-input-parent.metatest new file mode 100644 index 000000000..4cadb2350 --- /dev/null +++ b/src/tests/stacking/closed-transient-no-input-parent.metatest @@ -0,0 +1,20 @@ +new_client 1 x11 +create 1/1 +show 1/1 + +create 1/2 csd +set_parent 1/2 1 +accept_focus 1/2 false +show 1/2 + +create 1/3 csd +set_parent 1/3 2 +show 1/3 + +wait +assert_stacking 1/1 1/2 1/3 + +destroy 1/3 + +wait +assert_stacking 1/1 1/2 |