int launcher_enabled;
int launcher_max_icon_size;
+int launcher_tooltip_enabled;
+int launcher_alpha;
+int launcher_saturation;
+int launcher_brightness;
char *icon_theme_name;
XSettingsClient *xsettings_client;
{
launcher_enabled = 0;
launcher_max_icon_size = 0;
+ launcher_tooltip_enabled = 0;
+ launcher_alpha = 100;
+ launcher_saturation = 0;
+ launcher_brightness = 0;
icon_theme_name = 0;
xsettings_client = NULL;
}
Panel *panel = &panel1[i];
Launcher *launcher = &panel->launcher;
cleanup_launcher_theme(launcher);
-
- GSList *l;
- for (l = launcher->list_apps; l ; l = l->next) {
- free(l->data);
- }
- g_slist_free(launcher->list_apps);
- launcher->list_apps = NULL;
}
- g_free(icon_theme_name);
+ g_slist_free_full(panel_config.launcher.list_apps, free);
+ panel_config.launcher.list_apps = NULL;
+ free(icon_theme_name);
+ icon_theme_name = 0;
launcher_enabled = 0;
}
if (original) {
imlib_context_set_image (original);
icon_scaled = imlib_create_cropped_scaled_image(0, 0, imlib_image_get_width(), imlib_image_get_height(), icon_size, icon_size);
+ imlib_context_set_image (icon_scaled);
+ imlib_image_set_has_alpha(1);
+ DATA32* data = imlib_image_get_data();
+ adjust_asb(data, icon_size, icon_size, launcher_alpha, (float)launcher_saturation/100, (float)launcher_brightness/100);
+ imlib_image_put_back_data(data);
} else {
icon_scaled = imlib_create_image(icon_size, icon_size);
imlib_context_set_image (icon_scaled);
return 0;
}
+ int inside_desktop_entry = 0;
while (getline(&line, &line_size, fp) >= 0) {
int len = strlen(line);
if (len == 0)
continue;
line[len - 1] = '\0';
- if (parse_dektop_line(line, &key, &value)) {
- if (strcmp(key, "Name") == 0) {
+ if (line[0] == '[') {
+ inside_desktop_entry = (strcmp(line, "[Desktop Entry]") == 0);
+ }
+ if (inside_desktop_entry && parse_dektop_line(line, &key, &value)) {
+ if (!entry->name && strcmp(key, "Name") == 0) {
entry->name = strdup(value);
- } else if (strcmp(key, "Exec") == 0) {
+ } else if (!entry->exec && strcmp(key, "Exec") == 0) {
entry->exec = strdup(value);
- } else if (strcmp(key, "Icon") == 0) {
+ } else if (!entry->icon && strcmp(key, "Icon") == 0) {
entry->icon = strdup(value);
}
}
launcherIcon->area.bg = &g_array_index(backgrounds, Background, 0);
launcherIcon->area.on_screen = 1;
launcherIcon->area._on_change_layout = launcher_icon_on_change_layout;
- launcherIcon->area._get_tooltip_text = launcher_icon_get_tooltip_text;
+ if (launcher_tooltip_enabled)
+ launcherIcon->area._get_tooltip_text = launcher_icon_get_tooltip_text;
+ else
+ launcherIcon->area._get_tooltip_text = NULL;
launcherIcon->is_app_desktop = 1;
launcherIcon->cmd = strdup(entry.exec);
launcherIcon->icon_name = entry.icon ? strdup(entry.icon) : strdup(ICON_FALLBACK);
// avoid inheritance loops
if (!icon_theme_name) {
fprintf(stderr, "Missing launcher theme, default to 'hicolor'.\n");
- icon_theme_name = "hicolor";
- }
- else
+ icon_theme_name = strdup("hicolor");
+ } else {
fprintf(stderr, "Loading %s. Icon theme :", icon_theme_name);
+ }
GSList *queue = g_slist_append(NULL, strdup(icon_theme_name));
GSList *queued = g_slist_append(NULL, strdup(icon_theme_name));