Wayland: First client resize not detected as such after state change
When writing a test for a potential fix of #1956 (closed) I noticed that the following test snippet only triggers one client resize (the initial one) as can be seen by adding a print to move_resize_internal()
whenever there is a client resize:
new_client w wayland
create w/1 csd
resize w/1 100 100
show w/1
wait_reconfigure
resize w/1 200 200
wait_reconfigure
This is because after showing, the window gets focused, which because of the state change queues a configuration via surface_state_changed()
without a resize or move. The client then only acks this once the second resize happens, so by the time the check for a client resize happens, the queue is not empty.
This could probably be fixed by checking if there is anything with a has_size
in the queue, rather than whether the queue is empty.
So far I haven't found any real world impact of this and I doubt there is one. It's just affecting the test case I was trying to write. The fix I was hoping to test was working fine interactively.