diff options
author | Matthias Clasen <mclasen@redhat.com> | 2015-01-08 23:16:39 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2015-08-25 15:54:58 -0400 |
commit | a5e2256770db712d2ca3f9866309cd3cd5f3d6c7 (patch) | |
tree | 750fa99e9107245b329a540cbcddbc6a2f1bfbff /gtk/gtkmain.c | |
parent | c55ff6e41fb3c6272b5e7a084c8273dea60d7dee (diff) | |
download | gtk+-a5e2256770db712d2ca3f9866309cd3cd5f3d6c7.tar.gz |
Fix a startup ordering problem
Defer a11y initialization until we have a display. A11y initialization
causes widget classes to be initalized, which in turn needs some
backend-specific information about modifier masks that can't be
obtained before we have a display.
https://bugzilla.gnome.org/show_bug.cgi?id=736125
Diffstat (limited to 'gtk/gtkmain.c')
-rw-r--r-- | gtk/gtkmain.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index dfb6d9b5e6..0c3ed7ad7a 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -689,6 +689,12 @@ gettext_initialization (void) } static void +default_display_notify_cb (GdkDisplayManager *dm) +{ + _gtk_accessibility_init (); +} + +static void do_post_parse_initialization (int *argc, char ***argv) { @@ -719,11 +725,8 @@ do_post_parse_initialization (int *argc, _gtk_accel_map_init (); - /* Set the 'initialized' flag. - */ gtk_initialized = TRUE; - /* load gtk modules */ if (gtk_modules_string) { _gtk_modules_init (argc, argv, gtk_modules_string->str); @@ -734,7 +737,9 @@ do_post_parse_initialization (int *argc, _gtk_modules_init (argc, argv, NULL); } - _gtk_accessibility_init (); + g_signal_connect (gdk_display_manager_get (), "notify::default-display", + G_CALLBACK (default_display_notify_cb), + NULL); } |