]> Dogcows Code - chaz/tint2/blobdiff - src/launcher/launcher.c
Fix possible double free in launcher
[chaz/tint2] / src / launcher / launcher.c
index a813fea2982998f65a781a42973bd069af39d053..b62c597e00c223fd275fdfadd4713c30570f4966 100644 (file)
 
 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;
 
@@ -52,6 +56,10 @@ void default_launcher()
 {
        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;
 }
@@ -111,7 +119,8 @@ void cleanup_launcher()
                g_slist_free(launcher->list_apps);
                launcher->list_apps = NULL;
        }
-       g_free(icon_theme_name);
+       free(icon_theme_name);
+       icon_theme_name = 0;
        launcher_enabled = 0;
 }
 
@@ -301,6 +310,11 @@ Imlib_Image scale_icon(Imlib_Image original, int icon_size)
        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);
@@ -683,7 +697,10 @@ void launcher_load_icons(Launcher *launcher)
                        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);
This page took 0.024852 seconds and 4 git commands to generate.