apps-menu: Fix .desktop entries in subdirectories
GMenu's TreeEntries return an AppInfo that is created from the .desktop filename, not from a desktop ID as expected by the AppSystem. As a result, g_app_info_get_id() will simply return the file's basename, which only matches the desktop ID if no prefix-to-subdirectory mapping as described in the menu spec is involved. Fix this by basing the app lookup on the entry's desktop ID instead of the AppInfo. https://bugzilla.gnome.org/show_bug.cgi?id=759004
This commit is contained in:
@@ -397,15 +397,14 @@ const ApplicationsButton = new Lang.Class({
|
||||
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
|
||||
if (nextType == GMenu.TreeItemType.ENTRY) {
|
||||
let entry = iter.get_entry();
|
||||
let appInfo = entry.get_app_info();
|
||||
let id;
|
||||
try {
|
||||
id = appInfo.get_id(); // catch non-UTF8 filenames
|
||||
id = entry.get_desktop_file_id(); // catch non-UTF8 filenames
|
||||
} catch(e) {
|
||||
continue;
|
||||
}
|
||||
let app = appSys.lookup_app(id);
|
||||
if (appInfo.should_show())
|
||||
if (app.get_app_info().should_show())
|
||||
this.applicationsByCategory[categoryId].push(app);
|
||||
} else if (nextType == GMenu.TreeItemType.DIRECTORY) {
|
||||
let subdir = iter.get_directory();
|
||||
|
||||
Reference in New Issue
Block a user