wayland: Fix the placement of popup windows

The fix in d61dde1 regressed the position of popup windows, since the
size was 0x0 when we wanted to do a sole move. Only fizzle out in the
path where we actually *do* resize.

https://bugzilla.gnome.org/show_bug.cgi?id=736812
This commit is contained in:
Jasper St. Pierre 2014-09-17 09:36:31 -06:00 committed by Bastien Nocera
parent 1fb7ca398d
commit 4a41d415f8

View File

@ -188,21 +188,20 @@ meta_window_wayland_move_resize_internal (MetaWindow *window,
}
else
{
/* If we get a 0x0 size, this means that we're trying to resize
* a surface that doesn't have any buffer attached. This can happen
* when a client requests an xdg surface before bringing it up.
* The constrained_rect will be 1x1 because of how our constraints
* code works, and sending that to the window would cause it to
* redraw itself, so just don't send anything. Pretend like this
* move_resize never happened.
*/
if (unconstrained_rect.width == 0 &&
unconstrained_rect.height == 0)
return;
if (constrained_rect.width != window->rect.width ||
constrained_rect.height != window->rect.height)
{
/* If we get a 0x0 size, this means that we're trying to resize
* a surface that doesn't have any buffer attached. This can happen
* when a client requests an xdg surface before bringing it up.
* The constrained_rect will be 1x1 because of how our constraints
* code works, and sending that to the window would cause it to
* redraw itself, so just don't send anything.
*/
if (unconstrained_rect.width == 0 &&
unconstrained_rect.height == 0)
return;
meta_wayland_surface_configure_notify (window->surface,
constrained_rect.width,
constrained_rect.height,