From 0ffaf62c4cdad0a1aa971ba01c2dfacb65cb6c13 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 2be565bd..68cc05cd 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 a3709d4e..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.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME Bugzilla instead.", -"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 1e18d6ca..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.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME Bugzilla instead.", -"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