diff options
author | Takashi Iwai <tiwai@suse.de> | 2015-10-23 13:50:48 +0200 |
---|---|---|
committer | Dominique Leuenberger <dimstar@opensuse.org> | 2015-10-23 13:50:48 +0200 |
commit | 21a16d25d981f3ce34b764dbc8005dbf8edfbe97 (patch) | |
tree | 88138f04488139bdf8509a85cf37d0cbe47f4272 /gnome-settings-daemon/main.c | |
parent | a21ad97ffe3fa81b037740d0df93b5cce7632a1f (diff) | |
download | gnome-settings-daemon-21a16d25d981f3ce34b764dbc8005dbf8edfbe97.tar.gz |
Don't override preset xim setups
When $QT_IM_MODULE or $XMODIFIERS has been already set beforehand,
we should honor it and not override brutally. This makes GNOME as
a good citizen coping with other IMs more smoothly.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'gnome-settings-daemon/main.c')
-rw-r--r-- | gnome-settings-daemon/main.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gnome-settings-daemon/main.c b/gnome-settings-daemon/main.c index 4d1140b6..48d4bad4 100644 --- a/gnome-settings-daemon/main.c +++ b/gnome-settings-daemon/main.c @@ -255,9 +255,16 @@ is_program_in_path (const char *binary) static void set_legacy_ibus_env_vars (GDBusProxy *proxy) { + const char *p; if (is_program_in_path ("ibus-daemon")) { - set_session_env (proxy, "QT_IM_MODULE", "ibus"); - set_session_env (proxy, "XMODIFIERS", "@im=ibus"); + p = getenv ("QT_IM_MODULE"); + if (!p || !*p) + p = "ibus"; + set_session_env (proxy, "QT_IM_MODULE", p); + p = getenv ("XMODIFIERS"); + if (!p || !*p) + p = "@im=ibus"; + set_session_env (proxy, "XMODIFIERS", p); } } |