window-wayland: Don't insist if the window gives us a bad buffer
This is an easy way to get into an infinite loop where we're constantly re-sending stuff to the window. If it worked once, it probably won't work again.
This commit is contained in:
parent
e6558f838e
commit
6c5595fa9c
@ -203,26 +203,28 @@ meta_window_wayland_move_resize_internal (MetaWindow *window,
|
|||||||
* new position the client wants. */
|
* new position the client wants. */
|
||||||
can_move_now = TRUE;
|
can_move_now = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (constrained_rect.width != window->rect.width ||
|
|
||||||
constrained_rect.height != window->rect.height)
|
|
||||||
{
|
|
||||||
wl_window->last_sent_width = constrained_rect.width;
|
|
||||||
wl_window->last_sent_height = constrained_rect.height;
|
|
||||||
|
|
||||||
meta_wayland_surface_configure_notify (window->surface,
|
|
||||||
constrained_rect.width,
|
|
||||||
constrained_rect.height,
|
|
||||||
&wl_window->pending_configure_serial);
|
|
||||||
|
|
||||||
/* We need to wait until the resize completes before we can move */
|
|
||||||
can_move_now = FALSE;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* We're just moving the window, so we don't need to wait for a configure
|
if (constrained_rect.width != window->rect.width ||
|
||||||
* and then ack to simply move the window. */
|
constrained_rect.height != window->rect.height)
|
||||||
can_move_now = TRUE;
|
{
|
||||||
|
wl_window->last_sent_width = constrained_rect.width;
|
||||||
|
wl_window->last_sent_height = constrained_rect.height;
|
||||||
|
|
||||||
|
meta_wayland_surface_configure_notify (window->surface,
|
||||||
|
constrained_rect.width,
|
||||||
|
constrained_rect.height,
|
||||||
|
&wl_window->pending_configure_serial);
|
||||||
|
|
||||||
|
/* We need to wait until the resize completes before we can move */
|
||||||
|
can_move_now = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* We're just moving the window, so we don't need to wait for a configure
|
||||||
|
* and then ack to simply move the window. */
|
||||||
|
can_move_now = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (can_move_now)
|
if (can_move_now)
|
||||||
|
Loading…
Reference in New Issue
Block a user