compositor: don't recalculate shape and masks until surface arrives

mutter uses the windows "buffer rect" to determine how big to draw the
titlebar, and what masks to apply to the window for opaque areas.

That buffer rect is updated the moment we initiate a resize operation on
a window, but not actually accurate until the resize operation finishes

This commit makes sure the window actor keeps using its old shapes and
masks until any pending resize operation finishes.
This commit is contained in:
Ray Strode 2018-03-15 13:09:23 -04:00 committed by Ray Strode
parent db1adab828
commit fbf7e0073e

View File

@ -1922,10 +1922,11 @@ meta_window_actor_handle_updates (MetaWindowActor *self)
{ {
MetaWindowActorPrivate *priv = self->priv; MetaWindowActorPrivate *priv = self->priv;
if (is_frozen (self)) if (is_frozen (self) || meta_window_resize_is_pending (priv->window))
{ {
/* The window is frozen due to a pending animation: we'll wait until /* If the window is frozen due to a pending animation or a resize is
* the animation finishes to reshape and repair the window */ * pending then we'll wait until the animation or resize finishes to
* reshape and repair the window */
return; return;
} }