Krolyxon
Commit ea65610

Branches

Refs →

nsxivea65610

Load warning icon only once

Author
Bert
Date
2011-02-09 17:05 +0100
Parent
8e5835d
Commit
ea65610747bf324c98f390fba91b8a7c8818006a

+8 −5

1 file changed

  1. M image.c +8 −5
M image.c View
@@ -29,11 +29,15 @@ int zl_cnt;
2929 float zoom_min;
3030 float zoom_max;
3131
32+Imlib_Image *im_warn;
33+
3234 void img_init(img_t *img, win_t *win) {
3335 zl_cnt = sizeof(zoom_levels) / sizeof(zoom_levels[0]);
3436 zoom_min = zoom_levels[0] / 100.0;
3537 zoom_max = zoom_levels[zl_cnt - 1] / 100.0;
3638
39+ im_warn = imlib_create_image_using_data(32, 32, icon_warn);
40+
3741 if (img) {
3842 img->zoom = options->zoom;
3943 img->zoom = MAX(img->zoom, zoom_min);
@@ -49,8 +53,10 @@ void img_init(img_t *img, win_t *win) {
4953 }
5054
5155 void img_free(img_t* img) {
52− if (imlib_context_get_image())
56+ if (img && img->valid && imlib_context_get_image())
5357 imlib_free_image();
58+ imlib_context_set_image(im_warn);
59+ imlib_free_image();
5460 }
5561
5662 int _imlib_load_image(const char *filename) {
@@ -79,19 +85,16 @@ int img_check(const char *filename) {
7985 }
8086
8187 int img_load(img_t *img, const char *filename) {
82− Imlib_Image *im_warn;
83−
8488 if (!img || !filename)
8589 return 0;
8690
87− if (imlib_context_get_image())
91+ if (img->valid && imlib_context_get_image())
8892 imlib_free_image();
8993
9094 if ((img->valid = _imlib_load_image(filename))) {
9195 imlib_context_set_anti_alias(img->aa);
9296 img->scalemode = options->scalemode;
9397 } else {
94− im_warn = imlib_create_image_using_data(32, 32, icon_warn);
9598 imlib_context_set_image(im_warn);
9699 imlib_image_set_has_alpha(1);
97100 imlib_context_set_anti_alias(0);