]> Dogcows Code - chaz/tint2/blobdiff - src/launcher/launcher.c
add comment
[chaz/tint2] / src / launcher / launcher.c
index 158e06c1ddac0a590253ed1b0b8709482b9c778a..3a7c4ca11734cd38890b36c62b4aa0bcf42ce28d 100644 (file)
@@ -149,7 +149,7 @@ void cleanup_launcher()
        launcher_enabled = 0;
 }
 
-void resize_launcher(void *obj)
+int resize_launcher(void *obj)
 {
        Launcher *launcher = obj;
        Panel *panel = launcher->area.panel;
@@ -274,9 +274,7 @@ void resize_launcher(void *obj)
                        }
                }
        }
-       
-       // resize force the redraw
-       launcher->area.redraw = 1;
+       return 1;
 }
 
 
@@ -372,7 +370,7 @@ void expand_exec(DesktopEntry *entry, const char *path)
        // %c -> Name
        // %k -> path
        if (entry->exec) {
-               char *exec2 = malloc(strlen(entry->exec) + strlen(entry->name) + strlen(entry->icon) + 100);
+               char *exec2 = malloc(strlen(entry->exec) + (entry->name ? strlen(entry->name) : 1) + (entry->icon ? strlen(entry->icon) : 1) + 100);
                char *p, *q;
                // p will never point to an escaped char
                for (p = entry->exec, q = exec2; *p; p++, q++) {
@@ -711,6 +709,7 @@ void launcher_load_themes(Launcher *launcher)
                        launcher->icon_themes = g_slist_append(launcher->icon_themes, theme);
 
                        GSList* item = theme->list_inherits;
+                       int pos = 0;
                        while (item != NULL)
                        {
                                char *parent = item->data;
@@ -724,7 +723,8 @@ void launcher_load_themes(Launcher *launcher)
                                        queued_item = g_slist_next(queued_item);
                                }
                                if (!duplicate) {
-                                       queue = g_slist_append(queue, strdup(parent));
+                                       queue = g_slist_insert(queue, strdup(parent), pos);
+                                       pos++;
                                        queued = g_slist_append(queued, strdup(parent));
                                }
                                item = g_slist_next(item);
This page took 0.025538 seconds and 4 git commands to generate.