From 705915cd31771d45eac63eb54b5ea952a95a9e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 9 Oct 2017 12:53:04 +0200 Subject: [PATCH] keyboard: Don't pop up on touch events We want touch events to enable the keyboard and focus tracking, but not to actually show it right away. Implement that behavior by only changing the visibility of the keyboard when triggered by a GSettings change. https://bugzilla.gnome.org/show_bug.cgi?id=788188 --- js/ui/keyboard.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index 771f23dc2..1a251b582 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -308,6 +308,7 @@ var Keyboard = new Lang.Class({ }, _syncEnabled: function () { + let wasEnabled = this._enableKeyboard; this._enableKeyboard = this._a11yApplicationsSettings.get_boolean(SHOW_KEYBOARD); this._enabled = this._enableKeyboard || this._lastDeviceIsTouchscreen(); if (!this._enabled && !this._keyboard) @@ -315,14 +316,13 @@ var Keyboard = new Lang.Class({ this._setCaretTrackerEnabled(this._enabled); - if (this._enabled) { - if (!this._keyboard) - this._setupKeyboard(); - else - Main.layoutManager.showKeyboard(); - } else { + if (this._enabled && !this._keyboard) + this._setupKeyboard(); + + if (this._enableKeyboard && !wasEnabled) + Main.layoutManager.showKeyboard(); + else if (!this._enableKeyboard && wasEnabled) Main.layoutManager.hideKeyboard(true); - } }, _sync: function () {