keyboard: Split enabled setting from enabled state
We enable the keyboard when it is either enabled explicitly via a11y settings or when using a touch device. We'll soon want to special-case changes to the GSettings, so track its value in a dedicated property. https://bugzilla.gnome.org/show_bug.cgi?id=788188
This commit is contained in:
parent
d5f081a108
commit
cf23490c37
@ -168,6 +168,9 @@ var Keyboard = new Lang.Class({
|
|||||||
this._caretTrackingEnabled = false;
|
this._caretTrackingEnabled = false;
|
||||||
this._updateCaretPositionId = 0;
|
this._updateCaretPositionId = 0;
|
||||||
|
|
||||||
|
this._enableKeyboard = false; // a11y settings value
|
||||||
|
this._enabled = false; // enabled state (by setting or device type)
|
||||||
|
|
||||||
this._keyboardSettings = new Gio.Settings({ schema_id: KEYBOARD_SCHEMA });
|
this._keyboardSettings = new Gio.Settings({ schema_id: KEYBOARD_SCHEMA });
|
||||||
this._keyboardSettings.connect('changed', Lang.bind(this, this._sync));
|
this._keyboardSettings.connect('changed', Lang.bind(this, this._sync));
|
||||||
this._a11yApplicationsSettings = new Gio.Settings({ schema_id: A11Y_APPLICATIONS_SCHEMA });
|
this._a11yApplicationsSettings = new Gio.Settings({ schema_id: A11Y_APPLICATIONS_SCHEMA });
|
||||||
@ -305,14 +308,14 @@ var Keyboard = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_syncEnabled: function () {
|
_syncEnabled: function () {
|
||||||
this._enableKeyboard = this._a11yApplicationsSettings.get_boolean(SHOW_KEYBOARD) ||
|
this._enableKeyboard = this._a11yApplicationsSettings.get_boolean(SHOW_KEYBOARD);
|
||||||
this._lastDeviceIsTouchscreen();
|
this._enabled = this._enableKeyboard || this._lastDeviceIsTouchscreen();
|
||||||
if (!this._enableKeyboard && !this._keyboard)
|
if (!this._enabled && !this._keyboard)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._setCaretTrackerEnabled(this._enableKeyboard);
|
this._setCaretTrackerEnabled(this._enabled);
|
||||||
|
|
||||||
if (this._enableKeyboard) {
|
if (this._enabled) {
|
||||||
if (!this._keyboard)
|
if (!this._keyboard)
|
||||||
this._setupKeyboard();
|
this._setupKeyboard();
|
||||||
else
|
else
|
||||||
@ -509,7 +512,7 @@ var Keyboard = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_redraw: function () {
|
_redraw: function () {
|
||||||
if (!this._enableKeyboard)
|
if (!this._enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let monitor = Main.layoutManager.keyboardMonitor;
|
let monitor = Main.layoutManager.keyboardMonitor;
|
||||||
@ -614,7 +617,7 @@ var Keyboard = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
show: function (monitor) {
|
show: function (monitor) {
|
||||||
if (!this._enableKeyboard)
|
if (!this._enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._clearShowIdle();
|
this._clearShowIdle();
|
||||||
@ -650,7 +653,7 @@ var Keyboard = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
hide: function () {
|
hide: function () {
|
||||||
if (!this._enableKeyboard)
|
if (!this._enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._clearShowIdle();
|
this._clearShowIdle();
|
||||||
@ -713,14 +716,14 @@ var Keyboard = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setCursorLocation: function(x, y, w, h) {
|
setCursorLocation: function(x, y, w, h) {
|
||||||
if (!this._enableKeyboard)
|
if (!this._enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// this._setLocation(x, y);
|
// this._setLocation(x, y);
|
||||||
},
|
},
|
||||||
|
|
||||||
setEntryLocation: function(x, y, w, h) {
|
setEntryLocation: function(x, y, w, h) {
|
||||||
if (!this._enableKeyboard)
|
if (!this._enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// this._setLocation(x, y);
|
// this._setLocation(x, y);
|
||||||
|
Loading…
Reference in New Issue
Block a user