diff --git a/NEWS b/NEWS index d8fcc2f5..4c29e27e 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,17 @@ +3.29.3 +====== +* Adjust to global.screen removal [Jonas; #759538] + +Contributors: + Jonas Ådahl, Florian Müllner + +3.29.2 +====== +* Misc. bug fixes [Florian; #69] + +Contributors: + Florian Müllner + 3.28.1 ====== * Misc. bug fixes [Xiaoguang, Florian; #59, #62] diff --git a/data/gnome-shell-sass/HACKING b/data/gnome-shell-sass/HACKING deleted file mode 100644 index 2a8554b3..00000000 --- a/data/gnome-shell-sass/HACKING +++ /dev/null @@ -1,6 +0,0 @@ ---- Generating the css file --- - -You need sass to generate the css file. - -To generate them run from a command line in the project directory: -sass --sourcemap=none --update ./ diff --git a/data/gnome-shell-sass/README b/data/gnome-shell-sass/README deleted file mode 100644 index 7f2a257e..00000000 --- a/data/gnome-shell-sass/README +++ /dev/null @@ -1,7 +0,0 @@ -GNOME Shell Sass is a project intended to allow the sharing of the theme sources in sass between gnome-shell and other projects like gnome-shell-extensions. - -License -======= -GNOME Shell Sass is distributed under the terms of the GNU General Public License, -version 2 or later. See the COPYING file for details. - diff --git a/data/gnome-shell-sass/README.md b/data/gnome-shell-sass/README.md new file mode 100644 index 00000000..a5f219ae --- /dev/null +++ b/data/gnome-shell-sass/README.md @@ -0,0 +1,16 @@ +# GNOME Shell Sass +GNOME Shell Sass is a project intended to allow the sharing of the +theme sources in sass between gnome-shell and other projects like +gnome-shell-extensions. + +Any changes should be done in the [GNOME Shell subtree][shell-subtree] +and not the stand-alone [gnome-shell-sass repository][sass-repo]. They +will then be synchronized periodically before releases. + +## License +GNOME Shell Sass is distributed under the terms of the GNU General Public +License, version 2 or later. See the [COPYING][license] file for details. + +[shell-subtree]: https://gitlab.gnome.org/GNOME/gnome-shell/tree/master/data/theme/gnome-shell-sass +[sass-repo]: https://gitlab.gnome.org/GNOME/gnome-shell-sass +[license]: COPYING diff --git a/data/gnome-shell-sass/_common.scss b/data/gnome-shell-sass/_common.scss index f83b0d88..f1e6ae52 100644 --- a/data/gnome-shell-sass/_common.scss +++ b/data/gnome-shell-sass/_common.scss @@ -733,6 +733,7 @@ StScrollBar { transition-duration: 500ms; font-weight: bold; height: 1.86em; + font-feature-settings: "tnum"; &.unlock-screen, &.login-screen, @@ -958,6 +959,7 @@ StScrollBar { padding: 0.1em; margin: 2px; border-radius: 1.4em; + font-feature-settings: "tnum"; &:hover,&:focus { background-color: lighten($bg_color,5%); } &:active,&:selected { color: lighten($selected_fg_color,5%); @@ -1111,7 +1113,7 @@ StScrollBar { .aggregate-menu { min-width: 21em; .popup-menu-icon { padding: 0 4px; } - .popup-sub-menu .popup-menu-item :first-child { + .popup-sub-menu .popup-menu-item > :first-child { &:ltr { /* 12px spacing + 2*4px padding */ padding-left: 20px; margin-left: 1.09em; } &:rtl { /* 12px spacing + 2*4px padding */ @@ -1788,20 +1790,19 @@ StScrollBar { .login-dialog-user-list-view { -st-vfade-offset: 1em; } .login-dialog-user-list { spacing: 12px; - padding: .2em; width: 23em; &:expanded .login-dialog-user-list-item:selected { background-color: $selected_bg_color; color: $selected_fg_color; } &:expanded .login-dialog-user-list-item:logged-in { border-right: 2px solid $selected_bg_color; } } .login-dialog-user-list-item { border-radius: 5px; - padding: .2em; + padding: 6px; color: darken($osd_fg_color,30%); - &:ltr { padding-right: 1em; } - &:rtl { padding-left: 1em; } + &:ltr .user-widget { padding-right: 1em; } + &:rtl .user-widget { padding-left: 1em; } .login-dialog-timed-login-indicator { height: 2px; - margin: 2px 0 0 0; + margin-top: 6px; background-color: $osd_fg_color; } &:focus .login-dialog-timed-login-indicator { background-color: $selected_fg_color; } @@ -1816,8 +1817,8 @@ StScrollBar { padding-left: 15px; } .user-widget-label { - &:ltr { padding-left: 18px; } - &:rtl { padding-right: 18px; } + &:ltr { padding-left: 14px; } + &:rtl { padding-right: 14px; } } .login-dialog-prompt-layout { @@ -1868,6 +1869,7 @@ StScrollBar { .screen-shield-clock-time { font-size: 72pt; text-shadow: 0px 2px 2px rgba(0,0,0,0.4); + font-feature-settings: "tnum"; } .screen-shield-clock-date { diff --git a/export-zips.sh b/export-zips.sh index 776c2541..7fd4f038 100755 --- a/export-zips.sh +++ b/export-zips.sh @@ -22,6 +22,7 @@ for f in $extensiondir/*; do schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml cp $srcdir/NEWS $srcdir/COPYING $f + cp -r $localedir $f if [ -f $schema ]; then mkdir $f/schemas diff --git a/extensions/alternate-tab/extension.js b/extensions/alternate-tab/extension.js index 58f212a1..3e912d82 100644 --- a/extensions/alternate-tab/extension.js +++ b/extensions/alternate-tab/extension.js @@ -31,7 +31,7 @@ function enable() { return injections['_keyPressHandler'].call(this, keysym, action); }; - Main.wm._forcedWindowSwitcher = function(display, screen, window, binding) { + Main.wm._forcedWindowSwitcher = function(display, window, binding) { /* prevent a corner case where both popups show up at once */ if (this._workspaceSwitcherPopup != null) this._workspaceSwitcherPopup.destroy(); diff --git a/extensions/auto-move-windows/extension.js b/extensions/auto-move-windows/extension.js index 5e4bd6d8..cf417ec5 100644 --- a/extensions/auto-move-windows/extension.js +++ b/extensions/auto-move-windows/extension.js @@ -79,9 +79,10 @@ class WindowMover { return; // ensure we have the required number of workspaces - for (let i = global.screen.n_workspaces; i <= workspaceNum; i++) { + let workspaceManager = global.workspace_manager; + for (let i = workspaceManager.n_workspaces; i <= workspaceNum; i++) { window.change_workspace_by_index(i - 1, false); - global.screen.append_new_workspace(false, 0); + workspaceManager.append_new_workspace(false, 0); } window.change_workspace_by_index(workspaceNum, false); diff --git a/extensions/drive-menu/extension.js b/extensions/drive-menu/extension.js index 3c3dbe8c..d4135428 100644 --- a/extensions/drive-menu/extension.js +++ b/extensions/drive-menu/extension.js @@ -175,11 +175,11 @@ class DriveMenu extends PanelMenu.Button { } destroy() { - if (this._connectedId) { - this._monitor.disconnect(this._connectedId); - this._monitor.disconnect(this._disconnectedId); - this._connectedId = 0; - this._disconnectedId = 0; + if (this._addedId) { + this._monitor.disconnect(this._addedId); + this._monitor.disconnect(this._removedId); + this._addedId = 0; + this._removedId = 0; } super.destroy(); diff --git a/extensions/screenshot-window-sizer/extension.js b/extensions/screenshot-window-sizer/extension.js index 681c30ff..42abcb79 100644 --- a/extensions/screenshot-window-sizer/extension.js +++ b/extensions/screenshot-window-sizer/extension.js @@ -69,7 +69,7 @@ let SIZES = [ [1600, 900] ]; -function cycleScreenshotSizes(display, screen, window, binding) { +function cycleScreenshotSizes(display, window, binding) { // Probably this isn't useful with 5 sizes, but you can decrease instead // of increase by holding down shift. let modifiers = binding.get_modifiers(); diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js index 716a324a..96b252a2 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -238,10 +238,10 @@ class BaseButton { if (this._perMonitor) { this._windowEnteredMonitorId = - global.screen.connect('window-entered-monitor', + global.display.connect('window-entered-monitor', this._windowEnteredOrLeftMonitor.bind(this)); this._windowLeftMonitorId = - global.screen.connect('window-left-monitor', + global.display.connect('window-left-monitor', this._windowEnteredOrLeftMonitor.bind(this)); } } @@ -282,12 +282,12 @@ class BaseButton { this.actor.remove_style_class_name('focused'); } - _windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) { + _windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) { throw new Error('Not implemented'); } _isWindowVisible(window) { - let workspace = global.screen.get_active_workspace(); + let workspace = global.workspace_manager.get_active_workspace(); return !window.skip_taskbar && window.located_on_workspace(workspace) && @@ -315,11 +315,11 @@ class BaseButton { global.window_manager.disconnect(this._switchWorkspaceId); if (this._windowEnteredMonitorId) - global.screen.disconnect(this._windowEnteredMonitorId); + global.display.disconnect(this._windowEnteredMonitorId); this._windowEnteredMonitorId = 0; if (this._windowLeftMonitorId) - global.screen.disconnect(this._windowLeftMonitorId); + global.display.disconnect(this._windowLeftMonitorId); this._windowLeftMonitorId = 0; } }; @@ -377,7 +377,7 @@ class WindowButton extends BaseButton { this.actor.remove_style_class_name('minimized'); } - _windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) { + _windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) { if (monitorIndex == this._monitorIndex && metaWindow == this.metaWindow) this._updateVisibility(); } @@ -518,7 +518,7 @@ class AppButton extends BaseButton { this._updateStyle(); } - _windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) { + _windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) { if (this._windowTracker.get_window_app(metaWindow) == this.app && monitorIndex == this._monitorIndex) { this._updateVisibility(); @@ -529,7 +529,7 @@ class AppButton extends BaseButton { _updateVisibility() { if (!this._perMonitor) { // fast path: use ShellApp API to avoid iterating over all windows. - let workspace = global.screen.get_active_workspace(); + let workspace = global.workspace_manager.get_active_workspace(); this.actor.visible = this.app.is_on_workspace(workspace); } else { this.actor.visible = this.getWindowList().length >= 1; @@ -652,7 +652,9 @@ class WorkspaceIndicator extends PanelMenu.Button { x_expand: true, y_expand: true }); this.actor.add_actor(container); - this._currentWorkspace = global.screen.get_active_workspace().index(); + let workspaceManager = global.workspace_manager; + + this._currentWorkspace = workspaceManager.get_active_workspace().index(); this.statusLabel = new St.Label({ text: this._getStatusText(), x_align: Clutter.ActorAlign.CENTER, y_align: Clutter.ActorAlign.CENTER }); @@ -660,11 +662,11 @@ class WorkspaceIndicator extends PanelMenu.Button { this.workspacesItems = []; - this._screenSignals = []; - this._screenSignals.push(global.screen.connect('notify::n-workspaces', - this._updateMenu.bind(this))); - this._screenSignals.push(global.screen.connect_after('workspace-switched', - this._updateIndicator.bind(this))); + this._workspaceManagerSignals = []; + this._workspaceManagerSignals.push(workspaceManager.connect('notify::n-workspaces', + this._updateMenu.bind(this))); + this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-switched', + this._updateIndicator.bind(this))); this.actor.connect('scroll-event', this._onScrollEvent.bind(this)); this._updateMenu(); @@ -676,8 +678,8 @@ class WorkspaceIndicator extends PanelMenu.Button { } destroy() { - for (let i = 0; i < this._screenSignals.length; i++) - global.screen.disconnect(this._screenSignals[i]); + for (let i = 0; i < this._workspaceManagerSignals.length; i++) + global.workspace_manager.disconnect(this._workspaceManagerSignals[i]); if (this._settingsChangedId) { this._settings.disconnect(this._settingsChangedId); @@ -689,25 +691,28 @@ class WorkspaceIndicator extends PanelMenu.Button { _updateIndicator() { this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE); - this._currentWorkspace = global.screen.get_active_workspace().index(); + this._currentWorkspace = global.workspace_manager.get_active_workspace().index(); this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT); this.statusLabel.set_text(this._getStatusText()); } _getStatusText() { - let current = global.screen.get_active_workspace().index(); - let total = global.screen.n_workspaces; + let workspaceManager = global.workspace_manager; + let current = workspaceManager.get_active_workspace().index(); + let total = workspaceManager.n_workspaces; return '%d / %d'.format(current + 1, total); } _updateMenu() { + let workspaceManager = global.workspace_manager; + this.menu.removeAll(); this.workspacesItems = []; - this._currentWorkspace = global.screen.get_active_workspace().index(); + this._currentWorkspace = workspaceManager.get_active_workspace().index(); - for(let i = 0; i < global.screen.n_workspaces; i++) { + for(let i = 0; i < workspaceManager.n_workspaces; i++) { let name = Meta.prefs_get_workspace_name(i); let item = new PopupMenu.PopupMenuItem(name); item.workspaceId = i; @@ -727,8 +732,10 @@ class WorkspaceIndicator extends PanelMenu.Button { } _activate(index) { - if(index >= 0 && index < global.screen.n_workspaces) { - let metaWorkspace = global.screen.get_workspace_by_index(index); + let workspaceManager = global.workspace_manager; + + if(index >= 0 && index < workspaceManager.n_workspaces) { + let metaWorkspace = workspaceManager.get_workspace_by_index(index); metaWorkspace.activate(global.get_current_time()); } } @@ -833,10 +840,12 @@ class WindowList { this._updateKeyboardAnchor(); }); + let workspaceManager = global.workspace_manager; + this._workspaceSignals = new Map(); this._nWorkspacesChangedId = - global.screen.connect('notify::n-workspaces', - this._onWorkspacesChanged.bind(this)); + workspaceManager.connect('notify::n-workspaces', + this._onWorkspacesChanged.bind(this)); this._onWorkspacesChanged(); this._switchWorkspaceId = @@ -856,7 +865,7 @@ class WindowList { }); this._fullscreenChangedId = - global.screen.connect('in-fullscreen-changed', () => { + global.display.connect('in-fullscreen-changed', () => { this._updateKeyboardAnchor(); }); @@ -923,8 +932,9 @@ class WindowList { } _updateWorkspaceIndicatorVisibility() { + let workspaceManager = global.workspace_manager; let hasWorkspaces = this._dynamicWorkspacesSettings.get_boolean('dynamic-workspaces') || - global.screen.n_workspaces > 1; + workspaceManager.n_workspaces > 1; let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor || !this._workspaceSettings.get_boolean('workspaces-only-on-primary'); @@ -939,7 +949,7 @@ class WindowList { let [, childWidth] = children[0].get_preferred_width(-1); let spacing = this._windowList.layout_manager.spacing; - let workspace = global.screen.get_active_workspace(); + let workspace = global.workspace_manager.get_active_workspace(); let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace); if (this._perMonitor) windows = windows.filter(w => w.get_monitor() == this._monitor.index); @@ -1079,9 +1089,11 @@ class WindowList { } _onWorkspacesChanged() { - let numWorkspaces = global.screen.n_workspaces; + let workspaceManager = global.workspace_manager; + let numWorkspaces = workspaceManager.n_workspaces; + for (let i = 0; i < numWorkspaces; i++) { - let workspace = global.screen.get_workspace_by_index(i); + let workspace = workspaceManager.get_workspace_by_index(i); if (this._workspaceSignals.has(workspace)) continue; @@ -1099,9 +1111,11 @@ class WindowList { } _disconnectWorkspaceSignals() { - let numWorkspaces = global.screen.n_workspaces; + let workspaceManager = global.workspace_manager; + let numWorkspaces = workspaceManager.n_workspaces; + for (let i = 0; i < numWorkspaces; i++) { - let workspace = global.screen.get_workspace_by_index(i); + let workspace = workspaceManager.get_workspace_by_index(i); let signals = this._workspaceSignals.get(workspace); this._workspaceSignals.delete(workspace); workspace.disconnect(signals._windowAddedId); @@ -1179,7 +1193,7 @@ class WindowList { Main.layoutManager.hideKeyboard(); this._disconnectWorkspaceSignals(); - global.screen.disconnect(this._nWorkspacesChangedId); + global.workspace_manager.disconnect(this._nWorkspacesChangedId); this._nWorkspacesChangedId = 0; global.window_manager.disconnect(this._switchWorkspaceId); @@ -1189,7 +1203,7 @@ class WindowList { Main.overview.disconnect(this._overviewShowingId); Main.overview.disconnect(this._overviewHidingId); - global.screen.disconnect(this._fullscreenChangedId); + global.display.disconnect(this._fullscreenChangedId); Main.xdndHandler.disconnect(this._dragBeginId); Main.xdndHandler.disconnect(this._dragEndId); diff --git a/extensions/windowsNavigator/extension.js b/extensions/windowsNavigator/extension.js index 8c86f0f6..7d498903 100644 --- a/extensions/windowsNavigator/extension.js +++ b/extensions/windowsNavigator/extension.js @@ -135,14 +135,16 @@ function enable() { if(Main.overview.viewSelector._activePage != Main.overview.viewSelector._workspacesPage) return false; + let workspaceManager = global.workspace_manager; + if ((o.get_key_symbol() == Clutter.KEY_Alt_L || o.get_key_symbol() == Clutter.KEY_Alt_R) && !this._pickWorkspace) { this._prevFocusActor = global.stage.get_key_focus(); global.stage.set_key_focus(null); - this._active = global.screen.get_active_workspace_index(); + this._active = workspaceManager.get_active_workspace_index(); this._pickWindow = true; - this._workspaces[global.screen.get_active_workspace_index()].showWindowsTooltips(); + this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips(); return true; } if ((o.get_key_symbol() == Clutter.KEY_Control_L || @@ -166,7 +168,7 @@ function enable() { return true; if (this._pickWindow) { - if (this._active != global.screen.get_active_workspace_index()) { + if (this._active != workspaceManager.get_active_workspace_index()) { this._hideTooltips(); return false; } diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js index ace17039..162345a7 100644 --- a/extensions/workspace-indicator/extension.js +++ b/extensions/workspace-indicator/extension.js @@ -25,7 +25,9 @@ class WorkspaceIndicator extends PanelMenu.Button { constructor() { super(0.0, _("Workspace Indicator")); - this._currentWorkspace = global.screen.get_active_workspace().index(); + let workspaceManager = global.workspace_manager; + + this._currentWorkspace = workspaceManager.get_active_workspace().index(); this.statusLabel = new St.Label({ y_align: Clutter.ActorAlign.CENTER, text: this._labelText() }); @@ -35,12 +37,13 @@ class WorkspaceIndicator extends PanelMenu.Button { this._workspaceSection = new PopupMenu.PopupMenuSection(); this.menu.addMenuItem(this._workspaceSection); - this._screenSignals = []; - this._screenSignals.push(global.screen.connect_after('workspace-added', this._createWorkspacesSection.bind(this))); - this._screenSignals.push(global.screen.connect_after('workspace-removed', - this._createWorkspacesSection.bind(this))); - this._screenSignals.push(global.screen.connect_after('workspace-switched', - this._updateIndicator.bind(this))); + this._workspaceManagerSignals = []; + this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-added', + this._createWorkspacesSection.bind(this))); + this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-removed', + this._createWorkspacesSection.bind(this))); + this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-switched', + this._updateIndicator.bind(this))); this.actor.connect('scroll-event', this._onScrollEvent.bind(this)); this._createWorkspacesSection(); @@ -55,8 +58,8 @@ class WorkspaceIndicator extends PanelMenu.Button { } destroy() { - for (let i = 0; i < this._screenSignals.length; i++) - global.screen.disconnect(this._screenSignals[i]); + for (let i = 0; i < this._workspaceManagerSignals.length; i++) + global.workspace_manager.disconnect(this._workspaceManagerSignals[i]); if (this._settingsChangedId) { this._settings.disconnect(this._settingsChangedId); @@ -68,7 +71,7 @@ class WorkspaceIndicator extends PanelMenu.Button { _updateIndicator() { this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE); - this._currentWorkspace = global.screen.get_active_workspace().index(); + this._currentWorkspace = global.workspace_manager.get_active_workspace().index(); this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT); this.statusLabel.set_text(this._labelText()); @@ -83,12 +86,14 @@ class WorkspaceIndicator extends PanelMenu.Button { } _createWorkspacesSection() { + let workspaceManager = global.workspace_manager; + this._workspaceSection.removeAll(); this.workspacesItems = []; - this._currentWorkspace = global.screen.get_active_workspace().index(); + this._currentWorkspace = workspaceManager.get_active_workspace().index(); let i = 0; - for(; i < global.screen.n_workspaces; i++) { + for(; i < workspaceManager.n_workspaces; i++) { this.workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i)); this._workspaceSection.addMenuItem(this.workspacesItems[i]); this.workspacesItems[i].workspaceId = i; @@ -106,8 +111,10 @@ class WorkspaceIndicator extends PanelMenu.Button { } _activate(index) { - if(index >= 0 && index < global.screen.n_workspaces) { - let metaWorkspace = global.screen.get_workspace_by_index(index); + let workspaceManager = global.workspace_manager; + + if(index >= 0 && index < workspaceManager.n_workspaces) { + let metaWorkspace = workspaceManager.get_workspace_by_index(index); metaWorkspace.activate(global.get_current_time()); } } @@ -123,7 +130,7 @@ class WorkspaceIndicator extends PanelMenu.Button { return; } - let newIndex = global.screen.get_active_workspace().index() + diff; + let newIndex = global.workspace_manager.get_active_workspace().index() + diff; this._activate(newIndex); } }; diff --git a/meson.build b/meson.build index 40a82756..3ae3a9b4 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '3.28.1', + version: '3.29.3', meson_version: '>= 0.44.0', license: 'GPL2+' )