mirror of
https://github.com/brl/mutter.git
synced 2024-11-30 12:00:44 -05:00
wayland: Make sure we have a pending geometry
If the client doesn't set a geometry using xdg_shell, we'll compute its geometry based on its surface and subsurfaces. Yet, we translate that as a window (re)size only when there is a pending geometry, that we don't have when we computed the geometry by ourself. Make sure we set the pending new geometry flag when computing the geometry when it actually changed. https://bugzilla.gnome.org/show_bug.cgi?id=782213
This commit is contained in:
parent
dfdc15c72c
commit
ca31e4dc14
@ -1272,11 +1272,19 @@ xdg_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
|
|||||||
}
|
}
|
||||||
else if (!priv->has_set_geometry)
|
else if (!priv->has_set_geometry)
|
||||||
{
|
{
|
||||||
|
MetaRectangle new_geometry = { 0 };
|
||||||
|
|
||||||
/* If the surface has never set any geometry, calculate
|
/* If the surface has never set any geometry, calculate
|
||||||
* a default one unioning the surface and all subsurfaces together. */
|
* a default one unioning the surface and all subsurfaces together. */
|
||||||
|
|
||||||
meta_wayland_surface_calculate_window_geometry (surface,
|
meta_wayland_surface_calculate_window_geometry (surface,
|
||||||
&priv->geometry,
|
&new_geometry,
|
||||||
0, 0);
|
0, 0);
|
||||||
|
if (!meta_rectangle_equal (&new_geometry, &priv->geometry))
|
||||||
|
{
|
||||||
|
pending->has_new_geometry = TRUE;
|
||||||
|
priv->geometry = new_geometry;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user