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
This commit is contained in:
Marco Trevisan (Treviño) 2018-11-13 07:48:53 +01:00 committed by Jonas Ådahl
parent f2d2d473b7
commit 2fc7760cee
4 changed files with 67 additions and 0 deletions

View File

@ -111,6 +111,9 @@ stacking_tests = [
'basic-wayland', 'basic-wayland',
'client-side-decorated', 'client-side-decorated',
'closed-transient', 'closed-transient',
'closed-transient-no-input-no-take-focus-parent',
'closed-transient-no-input-no-take-focus-parents',
'closed-transient-no-input-parent',
'minimized', 'minimized',
'mixed-windows', 'mixed-windows',
'set-parent', 'set-parent',

View File

@ -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

View File

@ -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

View File

@ -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