wayland/window: Correct detection whether to send `configure`
When deciding if configure
event should be sent,
meta_window_wayland_move_resize_internal
compares requested window size
with window->rect
size. However, window->rect
is only updated when commit
is received. So the following sequence produces incorrect result:
- a window initially has size
size1
-
move_resize_internal
is called withsize2
.configure
is sent -
move_resize_internal
is called withsize1
to restore original size, butcommit
forsize2
haven't arrived yet. Sowindow->rect
still has sizesize1
, and thus newconfigure
is not sent -
commit
forsize2
arrives, window changes size tosize2
Expected window size in the end: size1
Actual: size2
To fix the issue, take pending configure
events into account.
Fixes #1627