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:
Jasper St. Pierre 2014-07-27 18:30:33 +02:00
parent e6558f838e
commit 6c5595fa9c

View File

@ -203,26 +203,28 @@ meta_window_wayland_move_resize_internal (MetaWindow *window,
* new position the client wants. */
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
{
/* 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 (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
{
/* 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)