Olivier Tilloy has proposed merging ~osomon/ubuntu/+source/gnome-shell:bionic-sru-lp1765304 into ~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/bionic.
Requested reviews: Ubuntu Desktop (ubuntu-desktop) Related bugs: Bug #1765304 in ibus (Ubuntu): "Ubuntu 18.04's ibus package breaks password fields in Firefox (by lowering & raising window whenever they're focused)" https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/1765304 For more details, see: https://code.launchpad.net/~osomon/ubuntu/+source/gnome-shell/+git/gnome-shell/+merge/359817 -- Your team Ubuntu Desktop is requested to review the proposed merge of ~osomon/ubuntu/+source/gnome-shell:bionic-sru-lp1765304 into ~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/bionic.
diff --git a/debian/changelog b/debian/changelog index 2d2d1df..ca7daa7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +gnome-shell (3.28.3-0ubuntu0.18.04.4) UNRELEASED; urgency=medium + + * debian/patches/ibus-set-content-type-no-holdKeyboard.patch: + - Cherry-pick upstream commit to prevent focus stealing on password fields + in firefox when ibus is used (LP: #1765304) + + -- Olivier Tilloy <[email protected]> Thu, 29 Nov 2018 11:34:00 +0100 + gnome-shell (3.28.3-0ubuntu0.18.04.3) bionic; urgency=medium * debian/ubuntu.css: diff --git a/debian/patches/ibus-set-content-type-no-holdKeyboard.patch b/debian/patches/ibus-set-content-type-no-holdKeyboard.patch new file mode 100644 index 0000000..0125d11 --- /dev/null +++ b/debian/patches/ibus-set-content-type-no-holdKeyboard.patch @@ -0,0 +1,69 @@ +From 551e827841626cd8084daa2210b3bf60e5be96be Mon Sep 17 00:00:00 2001 +From: Takao Fujiwara <[email protected]> +Date: Fri, 31 Aug 2018 20:22:23 +0900 +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 +--- + 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 6d031d88c..980019cd4 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 + diff --git a/debian/patches/series b/debian/patches/series index 6a12345..50a4a68 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -25,3 +25,4 @@ popupMenu-Don-t-handle-key-presses-directly-if-there-are-.patch st-button-Ignore-pointer-emulated-touch-events.patch st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch st-scroll-view-Remove-scrollbars-references-on-dispose.patch +ibus-set-content-type-no-holdKeyboard.patch
-- ubuntu-desktop mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop
