summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext
diff options
context:
space:
mode:
authorNikolay <MPolianovskyi@wavesglobal.com>2015-05-13 17:05:36 +0300
committerPaul Davis <paul@linuxaudiosystems.com>2015-06-29 14:18:15 -0400
commit55658c3aaec1d027ffe0da204ba4d837bcf14e1c (patch)
treec2b150d0c4bbe3e15fb7e61a554f5ad3a9f02685 /libs/gtkmm2ext
parent5d45ccf9707046318fdfb37158d60ed070360c1c (diff)
[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
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r--libs/gtkmm2ext/gtkapplication_quartz.mm4
1 files changed, 3 insertions, 1 deletions
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