mirror of
https://github.com/brl/mutter.git
synced 2024-11-22 16:10:41 -05:00
window-actor: Skip frame-sync when the corresponding window is gone
https://bugzilla.gnome.org/show_bug.cgi?id=735927
This commit is contained in:
parent
d50f8afa9e
commit
8d53ae894b
@ -927,7 +927,12 @@ meta_window_actor_queue_frame_drawn (MetaWindowActor *self,
|
|||||||
gboolean no_delay_frame)
|
gboolean no_delay_frame)
|
||||||
{
|
{
|
||||||
MetaWindowActorPrivate *priv = self->priv;
|
MetaWindowActorPrivate *priv = self->priv;
|
||||||
FrameData *frame = g_slice_new0 (FrameData);
|
FrameData *frame;
|
||||||
|
|
||||||
|
if (meta_window_actor_is_destroyed (self))
|
||||||
|
return;
|
||||||
|
|
||||||
|
frame = g_slice_new0 (FrameData);
|
||||||
|
|
||||||
priv->needs_frame_drawn = TRUE;
|
priv->needs_frame_drawn = TRUE;
|
||||||
|
|
||||||
@ -1903,6 +1908,9 @@ meta_window_actor_pre_paint (MetaWindowActor *self)
|
|||||||
MetaWindowActorPrivate *priv = self->priv;
|
MetaWindowActorPrivate *priv = self->priv;
|
||||||
GList *l;
|
GList *l;
|
||||||
|
|
||||||
|
if (meta_window_actor_is_destroyed (self))
|
||||||
|
return;
|
||||||
|
|
||||||
meta_window_actor_handle_updates (self);
|
meta_window_actor_handle_updates (self);
|
||||||
|
|
||||||
for (l = priv->frames; l != NULL; l = l->next)
|
for (l = priv->frames; l != NULL; l = l->next)
|
||||||
@ -1952,6 +1960,9 @@ meta_window_actor_post_paint (MetaWindowActor *self)
|
|||||||
|
|
||||||
priv->repaint_scheduled = FALSE;
|
priv->repaint_scheduled = FALSE;
|
||||||
|
|
||||||
|
if (meta_window_actor_is_destroyed (self))
|
||||||
|
return;
|
||||||
|
|
||||||
/* This window had damage, but wasn't actually redrawn because
|
/* This window had damage, but wasn't actually redrawn because
|
||||||
* it is obscured. So we should wait until timer expiration
|
* it is obscured. So we should wait until timer expiration
|
||||||
* before sending _NET_WM_FRAME_* messages.
|
* before sending _NET_WM_FRAME_* messages.
|
||||||
@ -2039,6 +2050,9 @@ meta_window_actor_frame_complete (MetaWindowActor *self,
|
|||||||
MetaWindowActorPrivate *priv = self->priv;
|
MetaWindowActorPrivate *priv = self->priv;
|
||||||
GList *l;
|
GList *l;
|
||||||
|
|
||||||
|
if (meta_window_actor_is_destroyed (self))
|
||||||
|
return;
|
||||||
|
|
||||||
for (l = priv->frames; l;)
|
for (l = priv->frames; l;)
|
||||||
{
|
{
|
||||||
GList *l_next = l->next;
|
GList *l_next = l->next;
|
||||||
|
Loading…
Reference in New Issue
Block a user