diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-04-16 13:25:01 -0400 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-04-16 14:00:24 -0400 |
commit | fbd88895c586a27bacd82d153d6ba21e3753e80c (patch) | |
tree | a143f4341eea2457ca45726a2c5dae7ec90dfa6d /clutter-gtk | |
parent | a160c1ea1dc5f0f7b8a5e6a6b25a6df8c8a16228 (diff) | |
download | clutter-gtk-fbd88895c586a27bacd82d153d6ba21e3753e80c.tar.gz |
gtk-clutter-util: Merge fixes from post_parse_hook
Get these two methods back in sync.
https://bugzilla.gnome.org/show_bug.cgi?id=695737
Diffstat (limited to 'clutter-gtk')
-rw-r--r-- | clutter-gtk/gtk-clutter-util.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/clutter-gtk/gtk-clutter-util.c b/clutter-gtk/gtk-clutter-util.c index 014c8f6..fdd2ba8 100644 --- a/clutter-gtk/gtk-clutter-util.c +++ b/clutter-gtk/gtk-clutter-util.c @@ -178,6 +178,8 @@ ClutterInitError gtk_clutter_init (int *argc, char ***argv) { + GdkDisplay *display; + if (gtk_clutter_is_initialized) return CLUTTER_INIT_SUCCESS; @@ -186,30 +188,43 @@ gtk_clutter_init (int *argc, if (!gtk_init_check (argc, argv)) return CLUTTER_INIT_ERROR_UNKNOWN; + display = gdk_display_get_default (); + #if defined(CLUTTER_WINDOWING_GDK) if (clutter_check_windowing_backend (CLUTTER_WINDOWING_GDK)) { clutter_gdk_set_display (gdk_display_get_default ()); + /* let GDK be in charge of the event handling */ clutter_gdk_disable_event_retrieval (); } + else #endif - #if defined(GDK_WINDOWING_X11) && defined(CLUTTER_WINDOWING_X11) - if (clutter_check_windowing_backend (CLUTTER_WINDOWING_X11)) + if (clutter_check_windowing_backend (CLUTTER_WINDOWING_X11) && + GDK_IS_X11_DISPLAY (display)) { + /* enable ARGB visuals by default for Clutter */ clutter_x11_set_use_argb_visual (TRUE); + /* share the X11 Display with GTK+ */ clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); + /* let GTK+ be in charge of the event handling */ clutter_x11_disable_event_retrieval (); } + else #endif - -#if defined(CLUTTER_WINDOWING_WIN32) - if (clutter_check_windowing_backend (CLUTTER_WINDOWING_WIN32)) - clutter_win32_disable_event_retrieval (); +#if defined(GDK_WINDOWING_WIN32) && defined(CLUTTER_WINDOWING_WIN32) + if (clutter_check_windowing_backend (CLUTTER_WINDOWING_WIN32) && + GDK_IS_WIN32_DISPLAY (display)) + { + /* let GTK+ be in charge of the event handling */ + clutter_win32_disable_event_retrieval (); + } + else #endif + g_error ("*** Unsupported backend."); /* We disable clutter accessibility support in order to not * interfere with gtk accessibility support. |