From a01b44f7de558954111836a59ee35e7e60c0303d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 16 Aug 2017 21:27:33 +0200 Subject: [PATCH 1/5] data: Replace override schema with per-desktop override GSettings now recognizes per-desktop overrides that can be used to change schemas' default values for classic mode, so use that instead of the separate override schema we currently use with mutter's custom override mechanism. https://bugzilla.gnome.org/show_bug.cgi?id=786496 --- ....shell.extensions.classic.gschema.override | 5 ++ data/meson.build | 4 +- ...l.extensions.classic-overrides.gschema.xml | 46 ------------------- po/POTFILES.in | 1 - 4 files changed, 7 insertions(+), 49 deletions(-) create mode 100644 data/00_org.gnome.shell.extensions.classic.gschema.override delete mode 100644 data/org.gnome.shell.extensions.classic-overrides.gschema.xml diff --git a/data/00_org.gnome.shell.extensions.classic.gschema.override b/data/00_org.gnome.shell.extensions.classic.gschema.override new file mode 100644 index 00000000..be8cdb73 --- /dev/null +++ b/data/00_org.gnome.shell.extensions.classic.gschema.override @@ -0,0 +1,5 @@ +[org.gnome.mutter:GNOME-Classic] +dynamic-workspaces=false + +[org.gnome.desktop.wm.preferences:GNOME-Classic] +button-layout='appmenu:minimize,maximize,close' diff --git a/data/meson.build b/data/meson.build index a807a3da..02ddf7d0 100644 --- a/data/meson.build +++ b/data/meson.build @@ -59,5 +59,5 @@ custom_target(style + '.css', install_data(theme_data, install_dir: themedir) -classic_schema = 'org.gnome.shell.extensions.classic-overrides.gschema.xml' -install_data(classic_schema, install_dir: schemadir) +classic_override = '00_org.gnome.shell.extensions.classic.gschema.override' +install_data(classic_override, install_dir: schemadir) diff --git a/data/org.gnome.shell.extensions.classic-overrides.gschema.xml b/data/org.gnome.shell.extensions.classic-overrides.gschema.xml deleted file mode 100644 index 83b89d92..00000000 --- a/data/org.gnome.shell.extensions.classic-overrides.gschema.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - true - Attach modal dialog to the parent window - - This key overrides the key in org.gnome.mutter when running - GNOME Shell. - - - - - "appmenu:minimize,maximize,close" - Arrangement of buttons on the titlebar - - This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME Shell. - - - - - true - Enable edge tiling when dropping windows on screen edges - - This key overrides the key in org.gnome.mutter when running GNOME Shell. - - - - - true - Workspaces only on primary monitor - - This key overrides the key in org.gnome.mutter when running GNOME Shell. - - - - - true - Delay focus changes in mouse mode until the pointer stops moving - - This key overrides the key in org.gnome.mutter when running GNOME Shell. - - - - diff --git a/po/POTFILES.in b/po/POTFILES.in index d98ca1bc..c2b88992 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,6 +1,5 @@ data/gnome-classic.desktop.in data/gnome-classic.session.desktop.in -data/org.gnome.shell.extensions.classic-overrides.gschema.xml extensions/alternate-tab/prefs.js extensions/apps-menu/extension.js extensions/auto-move-windows/extension.js From ecf28e13b48c8b7983d2fc139a84bf61eb7dfe37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 9 Jul 2018 15:26:09 +0200 Subject: [PATCH 2/5] window-list: Use correct settings schemas Override schemas are gone (yay!), so we can now simply use the original schema independent from the used session mode. https://bugzilla.gnome.org/show_bug.cgi?id=786496 --- extensions/window-list/extension.js | 31 ++++++++--------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js index 96b252a2..8257eac8 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -799,14 +799,12 @@ class WindowList { indicatorsBox.add(this._workspaceIndicator.container, { expand: false, y_fill: true }); this._mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter' }); - this._workspaceSettings = this._getWorkspaceSettings(); this._workspacesOnlyOnPrimaryChangedId = - this._workspaceSettings.connect('changed::workspaces-only-on-primary', - this._updateWorkspaceIndicatorVisibility.bind(this)); - this._dynamicWorkspacesSettings = this._getDynamicWorkspacesSettings(); + this._mutterSettings.connect('changed::workspaces-only-on-primary', + this._updateWorkspaceIndicatorVisibility.bind(this)); this._dynamicWorkspacesChangedId = - this._dynamicWorkspacesSettings.connect('changed::dynamic-workspaces', - this._updateWorkspaceIndicatorVisibility.bind(this)); + this._mutterSettings.connect('changed::dynamic-workspaces', + this._updateWorkspaceIndicatorVisibility.bind(this)); this._updateWorkspaceIndicatorVisibility(); this._menuManager = new PopupMenu.PopupMenuManager(this); @@ -890,19 +888,6 @@ class WindowList { this._groupingModeChanged(); } - _getDynamicWorkspacesSettings() { - if (this._workspaceSettings.list_keys().includes('dynamic-workspaces')) - return this._workspaceSettings; - return this._mutterSettings; - } - - _getWorkspaceSettings() { - let settings = global.get_overrides_settings() || this._mutterSettings; - if (settings.list_keys().includes('workspaces-only-on-primary')) - return settings; - return this._mutterSettings; - } - _onScrollEvent(actor, event) { let direction = event.get_scroll_direction(); let diff = 0; @@ -933,10 +918,10 @@ class WindowList { _updateWorkspaceIndicatorVisibility() { let workspaceManager = global.workspace_manager; - let hasWorkspaces = this._dynamicWorkspacesSettings.get_boolean('dynamic-workspaces') || + let hasWorkspaces = this._mutterSettings.get_boolean('dynamic-workspaces') || workspaceManager.n_workspaces > 1; let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor || - !this._workspaceSettings.get_boolean('workspaces-only-on-primary'); + !this._mutterSettings.get_boolean('workspaces-only-on-primary'); this._workspaceIndicator.actor.visible = hasWorkspaces && workspacesOnMonitor; } @@ -1177,8 +1162,8 @@ class WindowList { } _onDestroy() { - this._workspaceSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId); - this._dynamicWorkspacesSettings.disconnect(this._dynamicWorkspacesChangedId); + this._mutterSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId); + this._mutterSettings.disconnect(this._dynamicWorkspacesChangedId); this._workspaceIndicator.destroy(); From 39caf951e0b272753ededfab5f8dc6fdd289f735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 16 Aug 2017 21:28:02 +0200 Subject: [PATCH 3/5] data: Use override for default alt-tab keybindings Per-desktop overrides aren't limited to keys in org.gnome.mutter, so we can use them instead of the alternate-tab extension to default to the window switcher in the classic session. https://bugzilla.gnome.org/show_bug.cgi?id=786496 --- data/00_org.gnome.shell.extensions.classic.gschema.override | 4 ++++ meson.build | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/data/00_org.gnome.shell.extensions.classic.gschema.override b/data/00_org.gnome.shell.extensions.classic.gschema.override index be8cdb73..c6701074 100644 --- a/data/00_org.gnome.shell.extensions.classic.gschema.override +++ b/data/00_org.gnome.shell.extensions.classic.gschema.override @@ -3,3 +3,7 @@ dynamic-workspaces=false [org.gnome.desktop.wm.preferences:GNOME-Classic] button-layout='appmenu:minimize,maximize,close' + +[org.gnome.desktop.wm.keybindings:GNOME-Classic] +switch-applications=[] +switch-windows=['Tab','Tab'] diff --git a/meson.build b/meson.build index 3ae3a9b4..a7a1de4e 100644 --- a/meson.build +++ b/meson.build @@ -34,7 +34,6 @@ endif uuid_suffix = '@gnome-shell-extensions.gcampax.github.com' classic_extensions = [ - 'alternate-tab', 'apps-menu', 'places-menu', 'launch-new-instance', @@ -43,6 +42,7 @@ classic_extensions = [ default_extensions = classic_extensions default_extensions += [ + 'alternate-tab', 'drive-menu', 'screenshot-window-sizer', 'windowsNavigator', From ebad80c64d6c7d7da8f388471057d3a9551df471 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 1 Aug 2018 03:46:05 +0200 Subject: [PATCH 4/5] Update sass submodule --- data/gnome-shell-sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/gnome-shell-sass b/data/gnome-shell-sass index ac33b4f2..7d56794a 160000 --- a/data/gnome-shell-sass +++ b/data/gnome-shell-sass @@ -1 +1 @@ -Subproject commit ac33b4f22929aecd90bb1483aa3c1a886be7d665 +Subproject commit 7d56794aab6fff4fe80d11e516dcca2cae44a34d From 8b1bcc9fed04eaa0feeb53cdd61709cbe9551231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 1 Aug 2018 03:47:30 +0200 Subject: [PATCH 5/5] Bump version to 3.29.90 Update NEWS. --- NEWS | 7 +++++++ meson.build | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 4c29e27e..32ceb97c 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +3.29.90 +======= +* Misc. bug fixes [Florian; #786496] + +Contributors: + Florian Müllner + 3.29.3 ====== * Adjust to global.screen removal [Jonas; #759538] diff --git a/meson.build b/meson.build index a7a1de4e..bfc99f7d 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '3.29.3', + version: '3.29.90', meson_version: '>= 0.44.0', license: 'GPL2+' )