From f77bf60bcba745e1615a0644fda12ac47aa1ee41 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Sun, 29 Apr 2012 21:11:00 +0200 Subject: [PATCH] auto-move-windows/prefs: filter out apps that don't exist Recognize if the desktop file no longer exists and remove its entry in GSettings, instead of crashing because of a null GAppInfo. --- extensions/auto-move-windows/prefs.js | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/extensions/auto-move-windows/prefs.js b/extensions/auto-move-windows/prefs.js index 6f525f3..9662993 100644 --- a/extensions/auto-move-windows/prefs.js +++ b/extensions/auto-move-windows/prefs.js @@ -183,9 +183,13 @@ const Widget = new GObject.Class({ this._store.clear(); let currentItems = this._settings.get_strv(SETTINGS_KEY); + let validItems = [ ]; for (let i = 0; i < currentItems.length; i++) { let [id, index] = currentItems[i].split(':'); let appInfo = Gio.DesktopAppInfo.new(id); + if (!appInfo) + continue; + validItems.push(currentItems[i]); let iter = this._store.append(); let adj = new Gtk.Adjustment({ lower: 1, @@ -196,6 +200,9 @@ const Widget = new GObject.Class({ [Columns.APPINFO, Columns.ICON, Columns.DISPLAY_NAME, Columns.WORKSPACE, Columns.ADJUSTMENT], [appInfo, appInfo.get_icon(), appInfo.get_display_name(), parseInt(index), adj]); } + + if (validItems.length != currentItems.length) // some items were filtered out + this._settings.set_strv(SETTINGS_KEY, validItems); }, _appendItem: function(id, workspace) { -- 1.7.8.6