Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a3b4e154c | ||
|
|
e6fdccf65d | ||
|
|
a5b6871562 | ||
|
|
deb6031381 | ||
|
|
486cb59aff | ||
|
|
de9a3df7bd |
19
NEWS
19
NEWS
@@ -1,3 +1,22 @@
|
|||||||
|
41.2
|
||||||
|
====
|
||||||
|
* window-list: Update window tracking to avoid missing icons [Florian; #372]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Florian Müllner
|
||||||
|
|
||||||
|
41.1
|
||||||
|
====
|
||||||
|
* native-window-placement: Fix distorted layout in app grid [Sebastian; !189]
|
||||||
|
* window-list: Fix on-screen keyboard [Florian; !199]
|
||||||
|
* Misc. bug fixes [Neal; !195]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Neal Gompa, Sebastian Keller, Florian Müllner
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Goran Vidović [hr], Sveinn í Felli [is]
|
||||||
|
|
||||||
41.0
|
41.0
|
||||||
====
|
====
|
||||||
* Bump version
|
* Bump version
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
|
|||||||
TryExec=gnome-session
|
TryExec=gnome-session
|
||||||
Type=Application
|
Type=Application
|
||||||
DesktopNames=GNOME-Classic;GNOME;
|
DesktopNames=GNOME-Classic;GNOME;
|
||||||
|
X-GDM-SessionRegisters=true
|
||||||
|
|||||||
@@ -1,9 +1 @@
|
|||||||
.window-caption {
|
/* This extensions requires no special styling */
|
||||||
-shell-caption-spacing: 13px; /* current caption height is 26px => set it to half of it. TODO: better solution needed */
|
|
||||||
}
|
|
||||||
|
|
||||||
.window-picker {
|
|
||||||
-horizontal-spacing: 32px;
|
|
||||||
-vertical-spacing: 32px;
|
|
||||||
padding: 64px 32px;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -765,10 +765,9 @@ class WindowList extends St.Widget {
|
|||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let workspaceManager = global.workspace_manager;
|
||||||
|
|
||||||
this._workspaceSignals = new Map();
|
|
||||||
this._nWorkspacesChangedId = workspaceManager.connect(
|
this._nWorkspacesChangedId = workspaceManager.connect(
|
||||||
'notify::n-workspaces', this._onWorkspacesChanged.bind(this));
|
'notify::n-workspaces', this._updateWorkspaceIndicatorVisibility.bind(this));
|
||||||
this._onWorkspacesChanged();
|
this._updateWorkspaceIndicatorVisibility();
|
||||||
|
|
||||||
this._switchWorkspaceId = global.window_manager.connect(
|
this._switchWorkspaceId = global.window_manager.connect(
|
||||||
'switch-workspace', this._checkGrouping.bind(this));
|
'switch-workspace', this._checkGrouping.bind(this));
|
||||||
@@ -791,6 +790,10 @@ class WindowList extends St.Widget {
|
|||||||
this._updateKeyboardAnchor();
|
this._updateKeyboardAnchor();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this._windowSignals = new Map();
|
||||||
|
this._windowCreatedId = global.display.connect(
|
||||||
|
'window-created', (dsp, win) => this._addWindow(win));
|
||||||
|
|
||||||
this._dragBeginId = Main.xdndHandler.connect('drag-begin',
|
this._dragBeginId = Main.xdndHandler.connect('drag-begin',
|
||||||
this._monitorDrag.bind(this));
|
this._monitorDrag.bind(this));
|
||||||
this._dragEndId = Main.xdndHandler.connect('drag-end',
|
this._dragEndId = Main.xdndHandler.connect('drag-end',
|
||||||
@@ -913,7 +916,7 @@ class WindowList extends St.Widget {
|
|||||||
w2.metaWindow.get_stable_sequence();
|
w2.metaWindow.get_stable_sequence();
|
||||||
});
|
});
|
||||||
for (let i = 0; i < windows.length; i++)
|
for (let i = 0; i < windows.length; i++)
|
||||||
this._onWindowAdded(null, windows[i].metaWindow);
|
this._addWindow(windows[i].metaWindow);
|
||||||
} else {
|
} else {
|
||||||
let apps = this._appSystem.get_running().sort((a1, a2) => {
|
let apps = this._appSystem.get_running().sort((a1, a2) => {
|
||||||
return _getAppStableSequence(a1) -
|
return _getAppStableSequence(a1) -
|
||||||
@@ -925,11 +928,8 @@ class WindowList extends St.Widget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_updateKeyboardAnchor() {
|
_updateKeyboardAnchor() {
|
||||||
if (!Main.keyboard.keyboardActor)
|
const translationY = Main.overview.visible ? 0 : this.height;
|
||||||
return;
|
Main.layoutManager.keyboardBox.translation_y = -translationY;
|
||||||
|
|
||||||
let translationY = Main.overview.visible ? 0 : this.height;
|
|
||||||
Main.keyboard.keyboardActor.translation_y = -translationY;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_onAppStateChanged(appSys, app) {
|
_onAppStateChanged(appSys, app) {
|
||||||
@@ -956,7 +956,7 @@ class WindowList extends St.Widget {
|
|||||||
child.destroy();
|
child.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
_onWindowAdded(ws, win) {
|
_addWindow(win) {
|
||||||
if (!this._grouped)
|
if (!this._grouped)
|
||||||
this._checkGrouping();
|
this._checkGrouping();
|
||||||
|
|
||||||
@@ -967,21 +967,26 @@ class WindowList extends St.Widget {
|
|||||||
if (children.find(c => c.metaWindow === win))
|
if (children.find(c => c.metaWindow === win))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
this._windowSignals.set(
|
||||||
|
win, win.connect('unmanaged', () => this._removeWindow(win)));
|
||||||
|
|
||||||
let button = new WindowButton(win, this._perMonitor, this._monitor.index);
|
let button = new WindowButton(win, this._perMonitor, this._monitor.index);
|
||||||
this._settings.bind('display-all-workspaces',
|
this._settings.bind('display-all-workspaces',
|
||||||
button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
|
button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
|
||||||
this._windowList.add_child(button);
|
this._windowList.add_child(button);
|
||||||
}
|
}
|
||||||
|
|
||||||
_onWindowRemoved(ws, win) {
|
_removeWindow(win) {
|
||||||
if (this._grouped)
|
if (this._grouped)
|
||||||
this._checkGrouping();
|
this._checkGrouping();
|
||||||
|
|
||||||
if (this._grouped)
|
if (this._grouped)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (win.get_compositor_private())
|
const id = this._windowSignals.get(win);
|
||||||
return; // not actually removed, just moved to another workspace
|
if (id)
|
||||||
|
win.disconnect(id);
|
||||||
|
this._windowSignals.delete(id);
|
||||||
|
|
||||||
let children = this._windowList.get_children();
|
let children = this._windowList.get_children();
|
||||||
let child = children.find(c => c.metaWindow === win);
|
let child = children.find(c => c.metaWindow === win);
|
||||||
@@ -989,39 +994,6 @@ class WindowList extends St.Widget {
|
|||||||
child.destroy();
|
child.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
_onWorkspacesChanged() {
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let numWorkspaces = workspaceManager.n_workspaces;
|
|
||||||
|
|
||||||
for (let i = 0; i < numWorkspaces; i++) {
|
|
||||||
let workspace = workspaceManager.get_workspace_by_index(i);
|
|
||||||
if (this._workspaceSignals.has(workspace))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
let signals = { windowAddedId: 0, windowRemovedId: 0 };
|
|
||||||
signals._windowAddedId = workspace.connect_after(
|
|
||||||
'window-added', this._onWindowAdded.bind(this));
|
|
||||||
signals._windowRemovedId = workspace.connect(
|
|
||||||
'window-removed', this._onWindowRemoved.bind(this));
|
|
||||||
this._workspaceSignals.set(workspace, signals);
|
|
||||||
}
|
|
||||||
|
|
||||||
this._updateWorkspaceIndicatorVisibility();
|
|
||||||
}
|
|
||||||
|
|
||||||
_disconnectWorkspaceSignals() {
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let numWorkspaces = workspaceManager.n_workspaces;
|
|
||||||
|
|
||||||
for (let i = 0; i < numWorkspaces; i++) {
|
|
||||||
let workspace = workspaceManager.get_workspace_by_index(i);
|
|
||||||
let signals = this._workspaceSignals.get(workspace);
|
|
||||||
this._workspaceSignals.delete(workspace);
|
|
||||||
workspace.disconnect(signals._windowAddedId);
|
|
||||||
workspace.disconnect(signals._windowRemovedId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
_monitorDrag() {
|
_monitorDrag() {
|
||||||
DND.addDragMonitor(this._dragMonitor);
|
DND.addDragMonitor(this._dragMonitor);
|
||||||
}
|
}
|
||||||
@@ -1085,18 +1057,20 @@ class WindowList extends St.Widget {
|
|||||||
Main.keyboard._bottomDragAction.disconnect(this._keyboardVisiblechangedId);
|
Main.keyboard._bottomDragAction.disconnect(this._keyboardVisiblechangedId);
|
||||||
this._keyboardVisiblechangedId = 0;
|
this._keyboardVisiblechangedId = 0;
|
||||||
|
|
||||||
this._disconnectWorkspaceSignals();
|
|
||||||
global.workspace_manager.disconnect(this._nWorkspacesChangedId);
|
global.workspace_manager.disconnect(this._nWorkspacesChangedId);
|
||||||
this._nWorkspacesChangedId = 0;
|
this._nWorkspacesChangedId = 0;
|
||||||
|
|
||||||
global.window_manager.disconnect(this._switchWorkspaceId);
|
global.window_manager.disconnect(this._switchWorkspaceId);
|
||||||
this._switchWorkspaceId = 0;
|
this._switchWorkspaceId = 0;
|
||||||
|
|
||||||
|
this._windowSignals.forEach((id, win) => win.disconnect(id));
|
||||||
|
this._windowSignals.clear();
|
||||||
|
|
||||||
Main.overview.disconnect(this._overviewShowingId);
|
Main.overview.disconnect(this._overviewShowingId);
|
||||||
Main.overview.disconnect(this._overviewHidingId);
|
Main.overview.disconnect(this._overviewHidingId);
|
||||||
|
|
||||||
global.display.disconnect(this._fullscreenChangedId);
|
global.display.disconnect(this._fullscreenChangedId);
|
||||||
|
global.display.disconnect(this._windowCreatedId);
|
||||||
|
|
||||||
this._stopMonitoringDrag();
|
this._stopMonitoringDrag();
|
||||||
Main.xdndHandler.disconnect(this._dragBeginId);
|
Main.xdndHandler.disconnect(this._dragBeginId);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
project('gnome-shell-extensions',
|
project('gnome-shell-extensions',
|
||||||
version: '41.0',
|
version: '41.2',
|
||||||
meson_version: '>= 0.53.0',
|
meson_version: '>= 0.53.0',
|
||||||
license: 'GPL2+'
|
license: 'GPL2+'
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user