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
This commit is contained in:
parent
9745f9f8ce
commit
5e84c8f20b
@ -939,6 +939,10 @@ static void
|
|||||||
queue_send_frame_messages_timeout (MetaWindowActor *self)
|
queue_send_frame_messages_timeout (MetaWindowActor *self)
|
||||||
{
|
{
|
||||||
MetaWindowActorPrivate *priv = self->priv;
|
MetaWindowActorPrivate *priv = self->priv;
|
||||||
|
|
||||||
|
if (priv->send_frame_messages_timer != 0)
|
||||||
|
return;
|
||||||
|
|
||||||
MetaDisplay *display = meta_window_get_display (priv->window);
|
MetaDisplay *display = meta_window_get_display (priv->window);
|
||||||
gint64 current_time = meta_compositor_monotonic_time_to_server_time (display, g_get_monotonic_time ());
|
gint64 current_time = meta_compositor_monotonic_time_to_server_time (display, g_get_monotonic_time ());
|
||||||
MetaMonitorManager *monitor_manager = meta_monitor_manager_get ();
|
MetaMonitorManager *monitor_manager = meta_monitor_manager_get ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user