From 222eaa04c9650c83e5b0d1c2bcbf68a6ab184861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 6 Jun 2013 17:14:27 +0200 Subject: [PATCH] classic: Replace mini-extensions with mode-specific overridesSchema Some default values differ between classic and normal sessions. We used to implement this by overriding the shell's default values in mini-extensions (or more precisely: reversing the shell's overrides). Use a mode-specific overridesSchema instead, which has the advantage that settings defaults will not change unexpectedly when extensions are disabled/enabled (for instance during screen locks). https://bugzilla.gnome.org/show_bug.cgi?id=701717 --- configure.ac | 6 +-- data/Makefile.am | 8 ++++ data/classic.json.in | 1 + ...xtensions.classic-overrides.gschema.xml.in | 38 +++++++++++++++++++ extensions/default-min-max/Makefile.am | 3 -- extensions/default-min-max/extension.js | 20 ---------- extensions/default-min-max/metadata.json.in | 11 ------ extensions/default-min-max/stylesheet.css | 1 - extensions/static-workspaces/Makefile.am | 3 -- extensions/static-workspaces/extension.js | 18 --------- extensions/static-workspaces/metadata.json.in | 11 ------ extensions/static-workspaces/stylesheet.css | 1 - po/POTFILES.in | 1 + 13 files changed, 50 insertions(+), 72 deletions(-) create mode 100644 data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in delete mode 100644 extensions/default-min-max/Makefile.am delete mode 100644 extensions/default-min-max/extension.js delete mode 100644 extensions/default-min-max/metadata.json.in delete mode 100644 extensions/default-min-max/stylesheet.css delete mode 100644 extensions/static-workspaces/Makefile.am delete mode 100644 extensions/static-workspaces/extension.js delete mode 100644 extensions/static-workspaces/metadata.json.in delete mode 100644 extensions/static-workspaces/stylesheet.css diff --git a/configure.ac b/configure.ac index caaed548..202df21c 100644 --- a/configure.ac +++ b/configure.ac @@ -27,7 +27,7 @@ fi AC_SUBST([SHELL_VERSION]) dnl keep this in alphabetic order -CLASSIC_EXTENSIONS="apps-menu places-menu alternate-tab default-min-max launch-new-instance static-workspaces window-list" +CLASSIC_EXTENSIONS="apps-menu places-menu alternate-tab launch-new-instance window-list" DEFAULT_EXTENSIONS="$CLASSIC_EXTENSIONS alternative-status-menu drive-menu windowsNavigator workspace-indicator" ALL_EXTENSIONS="$DEFAULT_EXTENSIONS auto-move-windows example native-window-placement systemMonitor user-theme xrandr-indicator" AC_SUBST(CLASSIC_EXTENSIONS, [$CLASSIC_EXTENSIONS]) @@ -71,7 +71,7 @@ for e in $enable_extensions; do [AC_MSG_WARN([gnome-desktop-3.0 not found, disabling xrandr-indicator])]) ;; dnl keep this in alphabetic order - alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|default-min-max|drive-menu|example|launch-new-instance|native-window-placement|places-menu|static-workspaces|user-theme|window-list|windowsNavigator|workspace-indicator) + alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|drive-menu|example|launch-new-instance|native-window-placement|places-menu|user-theme|window-list|windowsNavigator|workspace-indicator) ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e" ;; *) @@ -88,13 +88,11 @@ AC_CONFIG_FILES([ extensions/alternative-status-menu/Makefile extensions/apps-menu/Makefile extensions/auto-move-windows/Makefile - extensions/default-min-max/Makefile extensions/drive-menu/Makefile extensions/example/Makefile extensions/launch-new-instance/Makefile extensions/native-window-placement/Makefile extensions/places-menu/Makefile - extensions/static-workspaces/Makefile extensions/systemMonitor/Makefile extensions/user-theme/Makefile extensions/window-list/Makefile diff --git a/data/Makefile.am b/data/Makefile.am index fa8526e9..e203a298 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -28,6 +28,12 @@ theme_DATA = \ $(srcdir)/gnome-classic.css \ $(NULL) +gsettings_in_files = org.gnome.shell.extensions.classic-overrides.gschema.xml.in +gsettings_SCHEMAS = $(gsettings_in_files:.xml.in=.xml) + +@INTLTOOL_XML_NOMERGE_RULE@ +@GSETTINGS_RULES@ + %.desktop.in:%.desktop.in.in $(AM_V_GEN) sed \ -e "s|\@libexecdir\@|$(libexecdir)|" \ @@ -54,6 +60,7 @@ EXTRA_DIST = \ $(session_in_in_files) \ $(xsession_in_files) \ $(mode_in_files) \ + $(gsettings_in_files) \ $(theme_DATA) \ $(NULL) @@ -62,4 +69,5 @@ CLEANFILES = \ $(session_DATA) \ $(xsession_DATA) \ $(mode_DATA) \ + $(gsettings_SCHEMAS) \ $(NULL) diff --git a/data/classic.json.in b/data/classic.json.in index bcb54201..567cba31 100644 --- a/data/classic.json.in +++ b/data/classic.json.in @@ -1,6 +1,7 @@ { "parentMode": "user", "stylesheetName": "gnome-classic.css", + "overridesSchema": "org.gnome.shell.extensions.classic-overrides", "enabledExtensions": [@CLASSIC_EXTENSIONS@], "panel": { "left": ["activities", "appMenu"], "center": [], diff --git a/data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in b/data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in new file mode 100644 index 00000000..1fffb356 --- /dev/null +++ b/data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in @@ -0,0 +1,38 @@ + + + + true + <_summary>Attach modal dialog to the parent window + <_description> + This key overrides the key in org.gnome.mutter when running + GNOME Shell. + + + + + true + <_summary>Enable edge tiling when dropping windows on screen edges + <_description> + This key overrides the key in org.gnome.mutter when running GNOME Shell. + + + + + true + <_summary>Workspaces only on primary monitor + <_description> + 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/extensions/default-min-max/Makefile.am b/extensions/default-min-max/Makefile.am deleted file mode 100644 index 7ade06c6..00000000 --- a/extensions/default-min-max/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -EXTENSION_ID = default-min-max - -include ../../extension.mk diff --git a/extensions/default-min-max/extension.js b/extensions/default-min-max/extension.js deleted file mode 100644 index aa8ff2e0..00000000 --- a/extensions/default-min-max/extension.js +++ /dev/null @@ -1,20 +0,0 @@ -// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- - -const Meta = imports.gi.Meta; - -const BUTTON_LAYOUT_KEY = 'button-layout'; -const EXTENSION_SCHEMA = 'org.gnome.desktop.wm.preferences'; -const SHELL_OVERRIDES_SCHEMA = 'org.gnome.shell.overrides'; - -function init(metadata) { -} - -function enable() { - // Override gnome-shell's overrides - Meta.prefs_override_preference_schema(BUTTON_LAYOUT_KEY, EXTENSION_SCHEMA); -} - -function disable() { - // Restore gnome-shell's overrides - Meta.prefs_override_preference_schema(BUTTON_LAYOUT_KEY, SHELL_OVERRIDES_SCHEMA); -} diff --git a/extensions/default-min-max/metadata.json.in b/extensions/default-min-max/metadata.json.in deleted file mode 100644 index 92e5a9ee..00000000 --- a/extensions/default-min-max/metadata.json.in +++ /dev/null @@ -1,11 +0,0 @@ -{ -"extension-id": "@extension_id@", -"uuid": "@uuid@", -"settings-schema": "@gschemaname@", -"gettext-domain": "@gettext_domain@", -"name": "Default Minimize and Maximize", -"description": "Adds minimize and maximize buttons to the titlebar by default", -"original-authors": [ "debarshir@gnome.org" ], -"shell-version": [ "@shell_current@" ], -"url": "@url@" -} diff --git a/extensions/default-min-max/stylesheet.css b/extensions/default-min-max/stylesheet.css deleted file mode 100644 index 25134b65..00000000 --- a/extensions/default-min-max/stylesheet.css +++ /dev/null @@ -1 +0,0 @@ -/* This extensions requires no special styling */ diff --git a/extensions/static-workspaces/Makefile.am b/extensions/static-workspaces/Makefile.am deleted file mode 100644 index d8e4181b..00000000 --- a/extensions/static-workspaces/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -EXTENSION_ID = static-workspaces - -include ../../extension.mk diff --git a/extensions/static-workspaces/extension.js b/extensions/static-workspaces/extension.js deleted file mode 100644 index 8a736996..00000000 --- a/extensions/static-workspaces/extension.js +++ /dev/null @@ -1,18 +0,0 @@ -// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- - -const Meta = imports.gi.Meta; - -function init(metadata) { -} - -function enable() { - // Override gnome-shell's overrides - Meta.prefs_override_preference_schema('dynamic-workspaces', - 'org.gnome.mutter'); -} - -function disable() { - // Restore gnome-shell's overrides - Meta.prefs_override_preference_schema('dynamic-workspaces', - 'org.gnome.shell.overrides'); -} diff --git a/extensions/static-workspaces/metadata.json.in b/extensions/static-workspaces/metadata.json.in deleted file mode 100644 index fda157c7..00000000 --- a/extensions/static-workspaces/metadata.json.in +++ /dev/null @@ -1,11 +0,0 @@ -{ -"extension-id": "@extension_id@", -"uuid": "@uuid@", -"settings-schema": "@gschemaname@", -"gettext-domain": "@gettext_domain@", -"name": "Static workspaces", -"description": "Disable dynamic workspace management", -"original-authors": [ "fmuellner@gnome.org" ], -"shell-version": [ "@shell_current@" ], -"url": "@url@" -} diff --git a/extensions/static-workspaces/stylesheet.css b/extensions/static-workspaces/stylesheet.css deleted file mode 100644 index 25134b65..00000000 --- a/extensions/static-workspaces/stylesheet.css +++ /dev/null @@ -1 +0,0 @@ -/* This extensions requires no special styling */ diff --git a/po/POTFILES.in b/po/POTFILES.in index c6821eef..09905f05 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,6 +1,7 @@ data/gnome-classic.desktop.in data/gnome-classic.session.desktop.in.in data/gnome-shell-classic.desktop.in.in +data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in extensions/alternate-tab/prefs.js extensions/alternative-status-menu/extension.js extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in