From 1f2e53dd153d938590933b622ce5ad2b44c4c9c8 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Fri, 20 Mar 2015 12:30:57 -0700 Subject: [PATCH] AppDisplay: use global settings object We don't need a different GSettings object for each app or favorite item. While it practice it does not change much (AddMatch is still obviously sent out), it minimally reduces the overhead on changes, and makes for cleaner code. https://bugzilla.gnome.org/show_bug.cgi?id=746509 --- js/ui/appDisplay.js | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index f83594693..c938e1f16 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -366,8 +366,6 @@ const AllView = new Lang.Class({ Extends: BaseAppView, _init: function() { - this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' }); - this.parent({ usePagination: true }, null); this._scrollView = new St.ScrollView({ style_class: 'all-apps', x_expand: true, @@ -525,7 +523,7 @@ const AllView = new Lang.Class({ // at least on single-monitor setups. // This also disables drag-to-launch on multi-monitor setups, // but we hope that is not used much. - let favoritesWritable = this._settings.is_writable('favorite-apps'); + let favoritesWritable = global.settings.is_writable('favorite-apps'); apps.forEach(Lang.bind(this, function(appId) { let app = appSys.lookup_app(appId); @@ -783,8 +781,6 @@ const FrequentView = new Lang.Class({ _init: function() { this.parent(null, { fillParent: true }); - this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' }); - this.actor = new St.Widget({ style_class: 'frequent-apps', layout_manager: new Clutter.BinLayout(), x_expand: true, y_expand: true }); @@ -827,7 +823,7 @@ const FrequentView = new Lang.Class({ // at least on single-monitor setups. // This also disables drag-to-launch on multi-monitor setups, // but we hope that is not used much. - let favoritesWritable = this._settings.is_writable('favorite-apps'); + let favoritesWritable = global.settings.is_writable('favorite-apps'); for (let i = 0; i < mostUsed.length; i++) { if (!mostUsed[i].get_app_info().should_show()) @@ -1804,8 +1800,6 @@ const AppIconMenu = new Lang.Class({ this.actor.add_style_class_name('app-well-menu'); - this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' }); - // Chain our visibility and lifecycle to that of the source source.actor.connect('notify::mapped', Lang.bind(this, function () { if (!source.actor.mapped) @@ -1867,7 +1861,7 @@ const AppIconMenu = new Lang.Class({ })); } - let canFavorite = this._settings.is_writable('favorite-apps'); + let canFavorite = global.settings.is_writable('favorite-apps'); if (canFavorite) { this._appendSeparator();