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
|
||||
====
|
||||
* Bump version
|
||||
|
||||
@@ -5,3 +5,4 @@ Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
|
||||
TryExec=gnome-session
|
||||
Type=Application
|
||||
DesktopNames=GNOME-Classic;GNOME;
|
||||
X-GDM-SessionRegisters=true
|
||||
|
||||
@@ -1,9 +1 @@
|
||||
.window-caption {
|
||||
-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;
|
||||
}
|
||||
/* This extensions requires no special styling */
|
||||
|
||||
@@ -765,10 +765,9 @@ class WindowList extends St.Widget {
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._workspaceSignals = new Map();
|
||||
this._nWorkspacesChangedId = workspaceManager.connect(
|
||||
'notify::n-workspaces', this._onWorkspacesChanged.bind(this));
|
||||
this._onWorkspacesChanged();
|
||||
'notify::n-workspaces', this._updateWorkspaceIndicatorVisibility.bind(this));
|
||||
this._updateWorkspaceIndicatorVisibility();
|
||||
|
||||
this._switchWorkspaceId = global.window_manager.connect(
|
||||
'switch-workspace', this._checkGrouping.bind(this));
|
||||
@@ -791,6 +790,10 @@ class WindowList extends St.Widget {
|
||||
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._monitorDrag.bind(this));
|
||||
this._dragEndId = Main.xdndHandler.connect('drag-end',
|
||||
@@ -913,7 +916,7 @@ class WindowList extends St.Widget {
|
||||
w2.metaWindow.get_stable_sequence();
|
||||
});
|
||||
for (let i = 0; i < windows.length; i++)
|
||||
this._onWindowAdded(null, windows[i].metaWindow);
|
||||
this._addWindow(windows[i].metaWindow);
|
||||
} else {
|
||||
let apps = this._appSystem.get_running().sort((a1, a2) => {
|
||||
return _getAppStableSequence(a1) -
|
||||
@@ -925,11 +928,8 @@ class WindowList extends St.Widget {
|
||||
}
|
||||
|
||||
_updateKeyboardAnchor() {
|
||||
if (!Main.keyboard.keyboardActor)
|
||||
return;
|
||||
|
||||
let translationY = Main.overview.visible ? 0 : this.height;
|
||||
Main.keyboard.keyboardActor.translation_y = -translationY;
|
||||
const translationY = Main.overview.visible ? 0 : this.height;
|
||||
Main.layoutManager.keyboardBox.translation_y = -translationY;
|
||||
}
|
||||
|
||||
_onAppStateChanged(appSys, app) {
|
||||
@@ -956,7 +956,7 @@ class WindowList extends St.Widget {
|
||||
child.destroy();
|
||||
}
|
||||
|
||||
_onWindowAdded(ws, win) {
|
||||
_addWindow(win) {
|
||||
if (!this._grouped)
|
||||
this._checkGrouping();
|
||||
|
||||
@@ -967,21 +967,26 @@ class WindowList extends St.Widget {
|
||||
if (children.find(c => c.metaWindow === win))
|
||||
return;
|
||||
|
||||
this._windowSignals.set(
|
||||
win, win.connect('unmanaged', () => this._removeWindow(win)));
|
||||
|
||||
let button = new WindowButton(win, this._perMonitor, this._monitor.index);
|
||||
this._settings.bind('display-all-workspaces',
|
||||
button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
|
||||
this._windowList.add_child(button);
|
||||
}
|
||||
|
||||
_onWindowRemoved(ws, win) {
|
||||
_removeWindow(win) {
|
||||
if (this._grouped)
|
||||
this._checkGrouping();
|
||||
|
||||
if (this._grouped)
|
||||
return;
|
||||
|
||||
if (win.get_compositor_private())
|
||||
return; // not actually removed, just moved to another workspace
|
||||
const id = this._windowSignals.get(win);
|
||||
if (id)
|
||||
win.disconnect(id);
|
||||
this._windowSignals.delete(id);
|
||||
|
||||
let children = this._windowList.get_children();
|
||||
let child = children.find(c => c.metaWindow === win);
|
||||
@@ -989,39 +994,6 @@ class WindowList extends St.Widget {
|
||||
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() {
|
||||
DND.addDragMonitor(this._dragMonitor);
|
||||
}
|
||||
@@ -1085,18 +1057,20 @@ class WindowList extends St.Widget {
|
||||
Main.keyboard._bottomDragAction.disconnect(this._keyboardVisiblechangedId);
|
||||
this._keyboardVisiblechangedId = 0;
|
||||
|
||||
this._disconnectWorkspaceSignals();
|
||||
global.workspace_manager.disconnect(this._nWorkspacesChangedId);
|
||||
this._nWorkspacesChangedId = 0;
|
||||
|
||||
global.window_manager.disconnect(this._switchWorkspaceId);
|
||||
this._switchWorkspaceId = 0;
|
||||
|
||||
this._windowSignals.forEach((id, win) => win.disconnect(id));
|
||||
this._windowSignals.clear();
|
||||
|
||||
Main.overview.disconnect(this._overviewShowingId);
|
||||
Main.overview.disconnect(this._overviewHidingId);
|
||||
|
||||
global.display.disconnect(this._fullscreenChangedId);
|
||||
global.display.disconnect(this._windowCreatedId);
|
||||
|
||||
this._stopMonitoringDrag();
|
||||
Main.xdndHandler.disconnect(this._dragBeginId);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project('gnome-shell-extensions',
|
||||
version: '41.0',
|
||||
version: '41.2',
|
||||
meson_version: '>= 0.53.0',
|
||||
license: 'GPL2+'
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user