diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index e897eb7a3..7a5f59e02 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -142,6 +142,10 @@ AppDisplay.prototype = { let apps = Gio.app_info_get_all(); for (let i = 0; i < apps.length; i++) { let appInfo = apps[i]; + + if (!appInfo.should_show()) + continue; + let appId = appInfo.get_id(); this._allItems[appId] = appInfo; // [] is returned if we could not get the categories or the list of categories was empty @@ -195,10 +199,14 @@ AppDisplay.prototype = { return true; } - let exec = itemInfo.get_executable().toLowerCase(); - if (exec.indexOf(search) >= 0) - return true; - + if (itemInfo.get_executable() == null) { + log("Missing an executable for " + itemInfo.get_name()); + } else { + let exec = itemInfo.get_executable().toLowerCase(); + if (exec.indexOf(search) >= 0) + return true; + } + // we expect this._categories.hasOwnProperty(itemInfo.get_id()) to always be true here let categories = this._categories[itemInfo.get_id()]; for (let i = 0; i < categories.length; i++) { diff --git a/js/ui/main.js b/js/ui/main.js index 18ade8b81..272b559a6 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -2,6 +2,7 @@ const Clutter = imports.gi.Clutter; const Shell = imports.gi.Shell; +const Gio = imports.gi.Gio; const Signals = imports.signals; const Mainloop = imports.mainloop; const Tweener = imports.tweener.tweener; @@ -104,7 +105,9 @@ Signals.addSignalMethods(ClutterFrameTicker.prototype); function start() { let global = Shell.Global.get(); - + + Gio.DesktopAppInfo.set_desktop_env("GNOME"); + global.grab_dbus_service(); global.start_task_panel(); diff --git a/src/shell-global.c b/src/shell-global.c index c6ad467d1..af2868409 100644 --- a/src/shell-global.c +++ b/src/shell-global.c @@ -378,7 +378,7 @@ shell_get_categories_for_desktop_file(const char *desktop_file_name) &error); if (error != NULL) { - g_warning ("Error when getting 'Categories' from a key file %s: %s", desktop_file_name, error->message); + // "Categories" is not a required key in the desktop files, so it's ok if we didn't find it g_clear_error (&error); } }