shell-global.c: remove a log message about missing 'Categories' key in the desktop file, as this key is not required
main.js: set desktop environment to "GNOME" so that GIO can determine correctly which applications should be shown in the menus. appDisplay.js: filter out applications that should not be shown in the menus, check if get_executable() for GAppInfo is not null before using it svn path=/trunk/; revision=163
This commit is contained in:
parent
5280decb59
commit
b2fbf5a2d8
@ -142,6 +142,10 @@ AppDisplay.prototype = {
|
|||||||
let apps = Gio.app_info_get_all();
|
let apps = Gio.app_info_get_all();
|
||||||
for (let i = 0; i < apps.length; i++) {
|
for (let i = 0; i < apps.length; i++) {
|
||||||
let appInfo = apps[i];
|
let appInfo = apps[i];
|
||||||
|
|
||||||
|
if (!appInfo.should_show())
|
||||||
|
continue;
|
||||||
|
|
||||||
let appId = appInfo.get_id();
|
let appId = appInfo.get_id();
|
||||||
this._allItems[appId] = appInfo;
|
this._allItems[appId] = appInfo;
|
||||||
// [] is returned if we could not get the categories or the list of categories was empty
|
// [] is returned if we could not get the categories or the list of categories was empty
|
||||||
@ -195,10 +199,14 @@ AppDisplay.prototype = {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
let exec = itemInfo.get_executable().toLowerCase();
|
if (itemInfo.get_executable() == null) {
|
||||||
if (exec.indexOf(search) >= 0)
|
log("Missing an executable for " + itemInfo.get_name());
|
||||||
return true;
|
} 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
|
// we expect this._categories.hasOwnProperty(itemInfo.get_id()) to always be true here
|
||||||
let categories = this._categories[itemInfo.get_id()];
|
let categories = this._categories[itemInfo.get_id()];
|
||||||
for (let i = 0; i < categories.length; i++) {
|
for (let i = 0; i < categories.length; i++) {
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
const Clutter = imports.gi.Clutter;
|
const Clutter = imports.gi.Clutter;
|
||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
|
const Gio = imports.gi.Gio;
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
const Mainloop = imports.mainloop;
|
const Mainloop = imports.mainloop;
|
||||||
const Tweener = imports.tweener.tweener;
|
const Tweener = imports.tweener.tweener;
|
||||||
@ -104,7 +105,9 @@ Signals.addSignalMethods(ClutterFrameTicker.prototype);
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
let global = Shell.Global.get();
|
let global = Shell.Global.get();
|
||||||
|
|
||||||
|
Gio.DesktopAppInfo.set_desktop_env("GNOME");
|
||||||
|
|
||||||
global.grab_dbus_service();
|
global.grab_dbus_service();
|
||||||
global.start_task_panel();
|
global.start_task_panel();
|
||||||
|
|
||||||
|
@ -378,7 +378,7 @@ shell_get_categories_for_desktop_file(const char *desktop_file_name)
|
|||||||
&error);
|
&error);
|
||||||
if (error != NULL)
|
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);
|
g_clear_error (&error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user