fix-menu-generation.patch 1.2 KB

123456789101112131415161718192021222324252627
  1. Index: openbox-xdgmenu-0.3/openbox-xdgmenu.c
  2. ===================================================================
  3. --- openbox-xdgmenu-0.3.orig/openbox-xdgmenu.c
  4. +++ openbox-xdgmenu-0.3/openbox-xdgmenu.c
  5. @@ -197,7 +197,7 @@ void process_entry(GMenuTreeEntry *entry
  6. {
  7. GDesktopAppInfo *appinfo = gmenu_tree_entry_get_app_info (entry);
  8. char *name = g_strdup (g_app_info_get_name(G_APP_INFO(appinfo)));
  9. - char *exec = g_strdup (g_app_info_get_executable(G_APP_INFO(appinfo)));
  10. + char *exec = g_strdup (g_app_info_get_commandline(G_APP_INFO(appinfo)));
  11. int i;
  12. for (i = 0; i < strlen(exec) - 1; i++) {
  13. @@ -217,8 +217,11 @@ void process_entry(GMenuTreeEntry *entry
  14. }
  15. }
  16. - g_printf("<item label=\"%s\">\n", g_strjoinv("&amp;", g_strsplit(name,"&",0))),
  17. - g_printf("<action name=\"Execute\"><command>%s</command></action>\n", exec),
  18. + g_printf("<item label=\"%s\">\n", g_strjoinv("&amp;", g_strsplit(name,"&",0)));
  19. + g_printf("<action name=\"Execute\"><command>%s%s</command></action>\n",
  20. + g_desktop_app_info_get_boolean(appinfo, G_KEY_FILE_DESKTOP_KEY_TERMINAL) ?
  21. + "x-terminal-emulator -e " : "",
  22. + exec);
  23. g_printf("</item>\n");
  24. g_free(name);