diff options
author | fujiwarat <takao.fujiwara1@gmail.com> | 2015-04-30 11:10:09 +0900 |
---|---|---|
committer | fujiwarat <takao.fujiwara1@gmail.com> | 2015-04-30 11:10:09 +0900 |
commit | ffdcc6cd1368143b77e6f535e90974651575b02e (patch) | |
tree | 46a267032cfc51dcdc59c3f54b16140bb5983dd4 | |
parent | f6ba337abc2bad9f40aea89b6c38564c982031fe (diff) | |
download | ibus-ffdcc6cd1368143b77e6f535e90974651575b02e.tar.gz |
Fix to get X11 display name on GTK3 applications in GNOME Wayland
gdk_display_get_name() returns "Wayland" in GTK 3.16 but
ibus-daemon uses DISPLAY variable for ibus_get_address() at present.
https://git.gnome.org/browse/gtk+/tree/gdk/wayland/gdkdisplay-wayland.c#n332
BUG=https://code.google.com/p/ibus/issues/detail?id=1774
TEST=client/gtk3/im-ibus.so
Review URL: https://codereview.appspot.com/229140045
-rw-r--r-- | client/gtk2/ibusimcontext.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c index a64c89b9..5c20592d 100644 --- a/client/gtk2/ibusimcontext.c +++ b/client/gtk2/ibusimcontext.c @@ -579,7 +579,11 @@ ibus_im_context_class_init (IBusIMContextClass *class) /* init bus object */ if (_bus == NULL) { - ibus_set_display (gdk_display_get_name (gdk_display_get_default ())); + const gchar *dname = gdk_display_get_name (gdk_display_get_default ()); + /* ibus-daemon uses DISPLAY variable. */ + if (g_strcmp0 (dname, "Wayland") == 0) + dname = g_getenv ("DISPLAY"); + ibus_set_display (dname); _bus = ibus_bus_new_async (); /* init the global fake context */ |