Merge branch 'launcher-path' into 'master' Add support for Path in .desktop files This attempts to solve Issue #611 I filed earlier this evening. I've added support for the Path key in .desktop files for the launcher. I'm happy to make any changes to make things cleaner, since I'm admittedly not a guru. See merge request !20
o9000 mrovi9000@gmail.com
4 files changed,
13 insertions(+),
1 deletions(-)
M
src/launcher/apps-common.c
→
src/launcher/apps-common.c
@@ -110,7 +110,7 @@ }
gboolean read_desktop_file_full_path(const char *path, DesktopEntry *entry) { - entry->name = entry->generic_name = entry->icon = entry->exec = NULL; + entry->name = entry->generic_name = entry->icon = entry->exec = entry->cwd = NULL; entry->hidden_from_menus = FALSE; FILE *fp = fopen(path, "rt");@@ -185,6 +185,8 @@ }
} } else if (!entry->exec && strcmp(key, "Exec") == 0) { entry->exec = strdup(value); + } else if (!entry->cwd && strcmp(key, "Path") == 0) { + entry->cwd = strdup(value); } else if (!entry->icon && strcmp(key, "Icon") == 0) { entry->icon = strdup(value); } else if (strcmp(key, "NoDisplay") == 0) {
M
src/launcher/apps-common.h
→
src/launcher/apps-common.h
@@ -15,6 +15,7 @@ char *generic_name;
char *exec; char *icon; char *path; + char *cwd; gboolean hidden_from_menus; } DesktopEntry;
M
src/launcher/launcher.c
→
src/launcher/launcher.c
@@ -441,6 +441,7 @@ #endif // HAVE_SN
// Allow children to exist after parent destruction setsid(); // Run the command + chdir(icon->cwd); execl("/bin/sh", "/bin/sh", "-c", icon->cmd, NULL); fprintf(stderr, "Failed to execlp %s\n", icon->cmd); #if HAVE_SN@@ -507,6 +508,13 @@ schedule_redraw(&launcherIcon->area);
if (launcherIcon->cmd) free(launcherIcon->cmd); launcherIcon->cmd = strdup(entry.exec); + if (launcherIcon->cwd) + free(launcherIcon->cwd); + if (entry.cwd) { + launcherIcon->cwd = strdup(entry.cwd); + } else { + launcherIcon->cwd = get_current_dir_name(); + } if (launcherIcon->icon_name) free(launcherIcon->icon_name); launcherIcon->icon_name = entry.icon ? strdup(entry.icon) : strdup(DEFAULT_ICON);
M
src/launcher/launcher.h
→
src/launcher/launcher.h
@@ -28,6 +28,7 @@ Imlib_Image image;
Imlib_Image image_hover; Imlib_Image image_pressed; char *cmd; + char *cwd; char *icon_name; char *icon_path; char *icon_tooltip;