From 55658c3aaec1d027ffe0da204ba4d837bcf14e1c Mon Sep 17 00:00:00 2001 From: Nikolay Date: Wed, 13 May 2015 17:05:36 +0300 Subject: [PATCH] [Summary] Mac OS specific bug fix: Increased priority of the top menu bar events [Details] g_idle_add () which was used for this purpose used G_PRIORITY_DEFAULT_IDLE>=200 which was too low for correct main menu requests processing, like showing Mixer or Big Clock Window. The priority was increased to G_PRIORITY_HIGH_IDLE = 100. According to GTK manual (https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH-IDLE:CAPS) GTK+ uses G_PRIORITY_HIGH_IDLE + 10 = 110 for resizing operations, and G_PRIORITY_HIGH_IDLE + 20 = 120 for redrawing operations. I assume that during record or playback on tracks there are too many redraw request which didn't give any chance for main menu request to be processed in time with old priority value. This change must be considered as a hot fix so far. The issue might be deeper. Will be investigated with Paul. [Feature reviewed] AMishyn [Reviewed by] PDavis, GZharun --- libs/gtkmm2ext/gtkapplication_quartz.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/gtkmm2ext/gtkapplication_quartz.mm b/libs/gtkmm2ext/gtkapplication_quartz.mm index faefd6b6ac..5809355ad9 100644 --- a/libs/gtkmm2ext/gtkapplication_quartz.mm +++ b/libs/gtkmm2ext/gtkapplication_quartz.mm @@ -573,7 +573,9 @@ idle_call_activate (gpointer data) - (void) activate:(id) sender { UNUSED_PARAMETER(sender); - g_idle_add (idle_call_activate, gtk_menu_item); + // Hot Fix. Increase Priority. + g_idle_add_full (G_PRIORITY_HIGH_IDLE, idle_call_activate, gtk_menu_item, NULL); +// g_idle_add (idle_call_activate, gtk_menu_item); } @end