diff --git a/gnome-settings-daemon-dont-override-xim-presets.patch b/gnome-settings-daemon-dont-override-xim-presets.patch new file mode 100644 index 0000000..41cdb98 --- /dev/null +++ b/gnome-settings-daemon-dont-override-xim-presets.patch @@ -0,0 +1,49 @@ +From: Takashi Iwai +Subject: Don't override preset xim setups +References: boo#947576 + +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 + +--- + gnome-settings-daemon/gnome-settings-daemon-localeexec.in | 4 ++-- + gnome-settings-daemon/main.c | 11 +++++++++-- + 2 files changed, 11 insertions(+), 4 deletions(-) + +--- a/gnome-settings-daemon/gnome-settings-daemon-localeexec.in ++++ b/gnome-settings-daemon/gnome-settings-daemon-localeexec.in +@@ -13,8 +13,8 @@ if [ -n "$REGION" ]; then + fi + + if [ -x @prefix@/bin/ibus-daemon ]; then +- export QT_IM_MODULE=ibus +- export XMODIFIERS=@im=ibus ++ test -z "$QT_IM_MODULE" && export QT_IM_MODULE=ibus ++ test -z "$XMODIFIERS" && export XMODIFIERS=@im=ibus + fi + + exec @libexecdir@/gnome-settings-daemon +--- 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); + } + } + diff --git a/gnome-settings-daemon.changes b/gnome-settings-daemon.changes index 2de2c1d..e580347 100644 --- a/gnome-settings-daemon.changes +++ b/gnome-settings-daemon.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Oct 22 21:40:19 CEST 2015 - tiwai@suse.de + +- Don't override QT_IM_MODULE and XMODIFIERS if already set + (boo#947576): + gnome-settings-daemon-dont-override-xim-presets.patch + ------------------------------------------------------------------- Mon Oct 12 13:16:22 UTC 2015 - zaitor@opensuse.org diff --git a/gnome-settings-daemon.spec b/gnome-settings-daemon.spec index 7c1b8b0..16489e9 100644 --- a/gnome-settings-daemon.spec +++ b/gnome-settings-daemon.spec @@ -41,6 +41,8 @@ Source: http://download.gnome.org/sources/gnome-settings-daemon/3.18/%{n Patch10: gnome-settings-daemon-bnc462640-mute-action.patch # PATCH-FEATURE-UPSTREAM gnome-settings-daemon-notify-idle-resumed.patch bnc#439018 bnc#708182 bgo#575467 hpj@suse.com -- notify user about auto suspend when returning from sleep Patch19: gnome-settings-daemon-notify-idle-resumed.patch +# PATCH-FIX-OPENSUSE gnome-settings-daemon-dont-override-xim-presets.patch boo#947576 +Patch20: gnome-settings-daemon-dont-override-xim-presets.patch BuildRequires: cups-devel BuildRequires: fdupes BuildRequires: gnome-common @@ -129,6 +131,7 @@ translation-update-upstream #gnome-patch-translation-prepare %patch10 -p0 %patch19 -p1 +%patch20 -p1 %build autoreconf -f -i