diff options
author | Matthias Clasen <mclasen@redhat.com> | 2018-02-15 03:01:43 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2018-02-15 03:01:43 +0000 |
commit | c2531b7ff2069d34f34025b17247389d7838cbb7 (patch) | |
tree | 24eb71d878095add6ad04571c23324b351965ad8 /gtk | |
parent | 753138a7cc3814ee811eb0dd28e3b3c61cde063c (diff) | |
parent | 21e9fe4f55a611945f17eef6a0c0fd681a511ea3 (diff) | |
download | gtk+-c2531b7ff2069d34f34025b17247389d7838cbb7.tar.gz |
Merge branch 'wip/carlosg/imwayland' into 'master'
modules: Add wayland IM implementation
See merge request GNOME/gtk!4
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkimmodule.c | 3 | ||||
-rw-r--r-- | gtk/gtksettings.c | 25 |
2 files changed, 28 insertions, 0 deletions
diff --git a/gtk/gtkimmodule.c b/gtk/gtkimmodule.c index f3f25409bc..a1099e2dfa 100644 --- a/gtk/gtkimmodule.c +++ b/gtk/gtkimmodule.c @@ -460,6 +460,9 @@ gtk_im_module_initialize (void) #ifdef INCLUDE_IM_broadway do_builtin (broadway); #endif +#ifdef INCLUDE_IM_wayland + do_builtin (wayland); +#endif #undef do_builtin diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index 6deb1f05cb..c3f52dcb52 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -1173,6 +1173,31 @@ gtk_settings_create_for_display (GdkDisplay *display) NULL); else #endif +#ifdef GDK_WINDOWING_WAYLAND + if (GDK_IS_WAYLAND_DISPLAY (display)) + { + const gchar *immodule = NULL; + + if (gdk_wayland_display_query_registry (display, + "gtk_text_input_manager")) + { + settings = g_object_new (GTK_TYPE_SETTINGS, + "gtk-im-module", "wayland", + NULL); + } + else + { + /* Fallback to other IM methods if the compositor does not + * implement the interface(s). + */ + settings = g_object_new (GTK_TYPE_SETTINGS, NULL); + } + + immodule = "wayland"; + + } + else +#endif settings = g_object_new (GTK_TYPE_SETTINGS, NULL); settings->priv->display = display; |