mutter/mutter-dont-overwrite-send_frame_messages_timer.patch
Bjørn Lie c24a666def Accepting request 263924 from home:badshah400:branches:home:Zaitor:boo906687
Add post-3.14.2 release fixes from upstream git (as of 2014-12-03), seems to me that they fix important issues leading to crashes (except the black login widnow patch which is cosmetic); previous sr would have removed my branch package if accepted, which we don't want for the sake of sr#263919. Sorry abt that.

OBS-URL: https://build.opensuse.org/request/show/263924
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=161
2014-12-07 20:15:55 +00:00

30 lines
1.2 KiB
Diff

From 56e74b1ea8ae37b88ba4b48388cd582d77c9dd91 Mon Sep 17 00:00:00 2001
From: "Owen W. Taylor" <otaylor@fishsoup.net>
Date: Fri, 17 Oct 2014 08:58:28 -0400
Subject: MetaWindowActor: don't overwrite send_frame_messages_timer
If the app finished multiple frames before we sent _NET_WM_FRAME_DRAWN,
we could add the send_frame_messages_timer multiple times. In the rare
case that the app immediately closed the window, the older timeout
could potentially then run on the freed actor.
https://bugzilla.gnome.org/show_bug.cgi?id=738686
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 254a1a9..3d6fab1 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -939,6 +939,10 @@ static void
queue_send_frame_messages_timeout (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
+
+ if (priv->send_frame_messages_timer != 0)
+ return;
+
MetaDisplay *display = meta_window_get_display (priv->window);
gint64 current_time = meta_compositor_monotonic_time_to_server_time (display, g_get_monotonic_time ());
MetaMonitorManager *monitor_manager = meta_monitor_manager_get ();
--
cgit v0.10.1