Hello community, here is the log from the commit of package gnome-shell for openSUSE:Factory checked in at 2019-01-26 22:17:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gnome-shell (Old) and /work/SRC/openSUSE:Factory/.gnome-shell.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-shell" Sat Jan 26 22:17:27 2019 rev:158 rq:667742 version:3.30.2 Changes: -------- --- /work/SRC/openSUSE:Factory/gnome-shell/gnome-shell.changes 2018-12-31 09:39:16.498565922 +0100 +++ /work/SRC/openSUSE:Factory/.gnome-shell.new.28833/gnome-shell.changes 2019-01-26 22:17:29.243095344 +0100 @@ -1,0 +2,7 @@ +Fri Jan 18 22:51:46 UTC 2019 - bjorn....@gmail.com + +- Add gnome-shell-Do-not-call-KeyboardManager.holdKeyboard.patch: + keyboard: Do not call KeyboardManager.holdKeyboard() with + set-content-type. Patch from upstream stable branch. + +------------------------------------------------------------------- New: ---- gnome-shell-Do-not-call-KeyboardManager.holdKeyboard.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-shell.spec ++++++ --- /var/tmp/diff_new_pack.KFkw8E/_old 2019-01-26 22:17:29.923094792 +0100 +++ /var/tmp/diff_new_pack.KFkw8E/_new 2019-01-26 22:17:29.927094788 +0100 @@ -1,7 +1,7 @@ # # spec file for package gnome-shell # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -48,6 +48,8 @@ Patch7: gnome-shell-dash-Destroy-items-child-before-tooltip.patch # PATCH-FIX-UPSTREAM gnome-shell-st-button-Ignore-pointer-emulated-touch-events.patch -- st-button: Ignore pointer emulated touch events Patch8: gnome-shell-st-button-Ignore-pointer-emulated-touch-events.patch +# PATCH-FIX-UPSTREAM gnome-shell-Do-not-call-KeyboardManager.holdKeyboard.patch -- keyboard: Do not call KeyboardManager.holdKeyboard() with set-content-type +Patch9: gnome-shell-Do-not-call-KeyboardManager.holdKeyboard.patch ## NOTE: Keep SLE-only patches at bottom (starting on 1000). # PATCH-FEATURE-SLE gnome-shell-gdm-login-applet.patch fate#314545 dli...@suse.com -- Add an applet on login UI to display suse icon, product name, hostname. @@ -191,6 +193,7 @@ %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 translation-update-upstream %if !0%{?is_opensuse} ++++++ gnome-shell-Do-not-call-KeyboardManager.holdKeyboard.patch ++++++ >From ca54b55c01907080a858c9a7e1dc0ad64aa621eb Mon Sep 17 00:00:00 2001 From: Takao Fujiwara <tfuji...@redhat.com> Date: Fri, 31 Aug 2018 11:22:23 +0000 Subject: [PATCH] keyboard: Do not call KeyboardManager.holdKeyboard() with set-content-type When gnome-shell receives the signal of 'set-content-type' from ibus, gnome-shell calls KeyboardManager.holdKeyboard() and KeyboardManager.releaseKeyboard() and the functions change the current input focus in GNOME Xorg and it could result in closing a popup window which has a password entry by focusing on the entry. The solution is to stop to call the APIs on 'set-content-type' signal. https://gitlab.gnome.org/GNOME/gnome-shell/issues/391 (cherry picked from commit 551e827841626cd8084daa2210b3bf60e5be96be) --- js/ui/status/keyboard.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js index a17e9c43b..1515a1f21 100644 --- a/js/ui/status/keyboard.js +++ b/js/ui/status/keyboard.js @@ -360,11 +360,14 @@ var InputSourceManager = new Lang.Class({ this._settings.connect('per-window-changed', this._sourcesPerWindowChanged.bind(this)); this._sourcesPerWindowChanged(); this._disableIBus = false; + this._reloading = false; }, reload() { + this._reloading = true; this._keyboardManager.setKeyboardOptions(this._settings.keyboardOptions); this._inputSourcesChanged(); + this._reloading = false; }, _ibusReadyCallback(im, ready) { @@ -458,7 +461,15 @@ var InputSourceManager = new Lang.Class({ }, activateInputSource(is, interactive) { - KeyboardManager.holdKeyboard(); + // The focus changes during holdKeyboard/releaseKeyboard may trick + // the client into hiding UI containing the currently focused entry. + // So holdKeyboard/releaseKeyboard are not called when + // 'set-content-type' signal is received. + // E.g. Focusing on a password entry in a popup in Xorg Firefox + // will emit 'set-content-type' signal. + // https://gitlab.gnome.org/GNOME/gnome-shell/issues/391 + if (!this._reloading) + KeyboardManager.holdKeyboard(); this._keyboardManager.apply(is.xkbId); // All the "xkb:..." IBus engines simply "echo" back symbols, @@ -473,7 +484,10 @@ var InputSourceManager = new Lang.Class({ else engine = 'xkb:us::eng'; - this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard); + if (!this._reloading) + this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard); + else + this._ibusManager.setEngine(engine); this._currentInputSourceChanged(is); if (interactive) -- 2.18.1