diff --git a/tests/configs/issue314.conf b/tests/configs/issue314.conf new file mode 100644 index 0000000..ce71a3e --- /dev/null +++ b/tests/configs/issue314.conf @@ -0,0 +1,6 @@ +fading = true +fade-in-step = 1 +fade-out-step = 0.01 +inactive-opacity = 0 +blur-background = true +force-win-blend = true diff --git a/tests/run_tests.sh b/tests/run_tests.sh index 89b3ab5..53292ca 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -9,3 +9,4 @@ cd $(dirname $0) ./run_one_test.sh $exe configs/issue239_2.conf testcases/issue239_2.py ./run_one_test.sh $exe configs/issue239_3.conf testcases/issue239_3.py ./run_one_test.sh $exe configs/issue239_3.conf testcases/issue239_3_norefresh.py +./run_one_test.sh $exe configs/issue314.conf testcases/issue314.py diff --git a/tests/testcases/issue314.py b/tests/testcases/issue314.py new file mode 100755 index 0000000..de7226b --- /dev/null +++ b/tests/testcases/issue314.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python + +import xcffib.xproto as xproto +import xcffib +import time +from common import set_window_name, trigger_root_configure + +conn = xcffib.connect() +setup = conn.get_setup() +root = setup.roots[0].root +visual = setup.roots[0].root_visual +depth = setup.roots[0].root_depth +x = xproto.xprotoExtension(conn) + +# issue 239 is caused by a window gaining a shadow during its fade-out transition +wid1 = conn.generate_id() +print("Window 1: ", hex(wid1)) +wid2 = conn.generate_id() +print("Window 1: ", hex(wid2)) + +# Create windows +conn.core.CreateWindowChecked(depth, wid1, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check() +conn.core.CreateWindowChecked(depth, wid2, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check() + +# Set Window names +set_window_name(conn, wid1, "Test window 1") +set_window_name(conn, wid2, "Test window 2") + +print("mapping 1") +conn.core.MapWindowChecked(wid1).check() +print("mapping 2") +conn.core.MapWindowChecked(wid2).check() + +time.sleep(0.5) + +x.SetInputFocusChecked(0, wid1, xproto.Time.CurrentTime).check() + +time.sleep(0.5) + +# Destroy the windows +conn.core.DestroyWindowChecked(wid1).check() + +x.SetInputFocusChecked(0, wid2, xproto.Time.CurrentTime).check() +time.sleep(1) +conn.core.DestroyWindowChecked(wid2).check()