summaryrefslogtreecommitdiffstats
path: root/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff')
-rw-r--r--source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff48
1 files changed, 48 insertions, 0 deletions
diff --git a/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff b/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff
new file mode 100644
index 000000000..4370281a3
--- /dev/null
+++ b/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff
@@ -0,0 +1,48 @@
+diff --git a/plugins/launcher/launcher.c b/plugins/launcher/launcher.c
+index 8edc66c..1e370c4 100644
+--- a/plugins/launcher/launcher.c
++++ b/plugins/launcher/launcher.c
+@@ -37,6 +37,30 @@
+ #include "launcher-exec.h"
+ #include "launcher-dialog.h"
+
++/* for 4.4 settings migration */
++static const gchar *icon_category_map[] = {
++ "applications-other",
++ "accessories-text-editor",
++ "system-file-manager",
++ "applications-accessories",
++ "applications-games",
++ "help-browser",
++ "applications-multimedia",
++ "applications-internet",
++ "applications-graphics",
++ "printer",
++ "office-calendar",
++ "applications-office",
++ "audio-card",
++ "utilities-terminal",
++ "applications-development",
++ "preferences-desktop",
++ "applications-system",
++ "applications-other",
++ "applications-accessories",
++};
++#define ICON_CATEGORY_MAP_MAX (G_N_ELEMENTS (icon_category_map) - 1)
++
+ /* prototypes */
+ static void launcher_utility_icon_theme_changed (GtkIconTheme *icon_theme,
+ LauncherPlugin *launcher);
+@@ -1216,6 +1240,12 @@ launcher_plugin_read (LauncherPlugin *launcher)
+ entry->name = launcher_plugin_read_entry (rc, "Name");
+ entry->comment = launcher_plugin_read_entry (rc, "Comment");
+ entry->icon = launcher_plugin_read_entry (rc, "Icon");
++ if (G_UNLIKELY (!entry->icon))
++ {
++ gint icon_category = xfce_rc_read_int_entry (rc, "X-XFCE-IconCategory", -1);
++ if (G_LIKELY (icon_category >= 0 && icon_category <= ICON_CATEGORY_MAP_MAX))
++ entry->icon = g_strdup (icon_category_map[icon_category]);
++ }
+ entry->exec = launcher_plugin_read_entry (rc, "Exec");
+ entry->path = launcher_plugin_read_entry (rc, "Path");
+