keyboard: Initialize the FocusTrackers current window correctly

The FocusTracker keeps track of the currently focused window using its
internal this._currentWindow property. It will only pick up the focused
window though when receiving a "notify::focus-window" signal, so the
focused window that's set when the FocusTracker is created won't be
picked up.

Fix that by setting the _currentWindow during creation of the
FocusTracker.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>
This commit is contained in:
Jonas Dreßler 2021-02-26 15:52:06 +01:00 committed by Marge Bot
parent d8adeba6b6
commit 3acf840c99

View File

@ -550,7 +550,6 @@ var KeyboardModel = class {
var FocusTracker = class { var FocusTracker = class {
constructor() { constructor() {
this._currentWindow = null;
this._rect = null; this._rect = null;
this._notifyFocusId = global.display.connect('notify::focus-window', () => { this._notifyFocusId = global.display.connect('notify::focus-window', () => {
@ -558,6 +557,8 @@ var FocusTracker = class {
this.emit('window-changed', this._currentWindow); this.emit('window-changed', this._currentWindow);
}); });
this._setCurrentWindow(global.display.focus_window);
this._grabOpBeginId = global.display.connect('grab-op-begin', (display, window, op) => { this._grabOpBeginId = global.display.connect('grab-op-begin', (display, window, op) => {
if (window == this._currentWindow && if (window == this._currentWindow &&
(op == Meta.GrabOp.MOVING || op == Meta.GrabOp.KEYBOARD_MOVING)) (op == Meta.GrabOp.MOVING || op == Meta.GrabOp.KEYBOARD_MOVING))