summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfujiwarat <takao.fujiwara1@gmail.com>2015-04-30 11:10:09 +0900
committerfujiwarat <takao.fujiwara1@gmail.com>2015-04-30 11:10:09 +0900
commitffdcc6cd1368143b77e6f535e90974651575b02e (patch)
tree46a267032cfc51dcdc59c3f54b16140bb5983dd4
parentf6ba337abc2bad9f40aea89b6c38564c982031fe (diff)
downloadibus-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.c6
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 */