Change the priority of the window-close idle to G_PRIORITY_DEFAULT

If we have an application that never goes idle (or takes a long time to
go idle), the close buttons in CSD decoration don't work properly.
While it's not clear why the usage of an idle was added in the first
place, keep on using it to avoid unexpected reentrancy problems, but
change the priority to G_PRIORITY_DEFAULT.

https://bugzilla.gnome.org/show_bug.cgi?id=768485
This commit is contained in:
Owen W. Taylor 2016-07-06 09:46:43 -04:00
parent c7654c737c
commit b840a59766

View File

@ -1342,7 +1342,7 @@ gtk_window_close (GtkWindow *window)
if (!_gtk_widget_get_realized (GTK_WIDGET (window))) if (!_gtk_widget_get_realized (GTK_WIDGET (window)))
return; return;
window->priv->delete_event_handler = gdk_threads_add_idle (send_delete_event, window); window->priv->delete_event_handler = gdk_threads_add_idle_full (G_PRIORITY_DEFAULT, send_delete_event, window, NULL);
g_source_set_name_by_id (window->priv->delete_event_handler, "[gtk+] send_delete_event"); g_source_set_name_by_id (window->priv->delete_event_handler, "[gtk+] send_delete_event");
} }