Load warning icon only once
This commit is contained in:
		
							parent
							
								
									8e5835d1fd
								
							
						
					
					
						commit
						ea65610747
					
				
							
								
								
									
										13
									
								
								image.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								image.c
									
									
									
									
									
								
							| @ -29,11 +29,15 @@ int zl_cnt; | |||||||
| float zoom_min; | float zoom_min; | ||||||
| float zoom_max; | float zoom_max; | ||||||
| 
 | 
 | ||||||
|  | Imlib_Image *im_warn; | ||||||
|  | 
 | ||||||
| void img_init(img_t *img, win_t *win) { | void img_init(img_t *img, win_t *win) { | ||||||
| 	zl_cnt = sizeof(zoom_levels) / sizeof(zoom_levels[0]); | 	zl_cnt = sizeof(zoom_levels) / sizeof(zoom_levels[0]); | ||||||
| 	zoom_min = zoom_levels[0] / 100.0; | 	zoom_min = zoom_levels[0] / 100.0; | ||||||
| 	zoom_max = zoom_levels[zl_cnt - 1] / 100.0; | 	zoom_max = zoom_levels[zl_cnt - 1] / 100.0; | ||||||
| 
 | 
 | ||||||
|  | 	im_warn = imlib_create_image_using_data(32, 32, icon_warn); | ||||||
|  | 
 | ||||||
| 	if (img) { | 	if (img) { | ||||||
| 		img->zoom = options->zoom; | 		img->zoom = options->zoom; | ||||||
| 		img->zoom = MAX(img->zoom, zoom_min); | 		img->zoom = MAX(img->zoom, zoom_min); | ||||||
| @ -49,8 +53,10 @@ void img_init(img_t *img, win_t *win) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void img_free(img_t* img) { | void img_free(img_t* img) { | ||||||
| 	if (imlib_context_get_image()) | 	if (img && img->valid && imlib_context_get_image()) | ||||||
| 		imlib_free_image(); | 		imlib_free_image(); | ||||||
|  | 	imlib_context_set_image(im_warn); | ||||||
|  | 	imlib_free_image(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int _imlib_load_image(const char *filename) { | int _imlib_load_image(const char *filename) { | ||||||
| @ -79,19 +85,16 @@ int img_check(const char *filename) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int img_load(img_t *img, const char *filename) { | int img_load(img_t *img, const char *filename) { | ||||||
| 	Imlib_Image *im_warn; |  | ||||||
| 
 |  | ||||||
| 	if (!img || !filename) | 	if (!img || !filename) | ||||||
| 		return 0; | 		return 0; | ||||||
| 
 | 
 | ||||||
| 	if (imlib_context_get_image()) | 	if (img->valid && imlib_context_get_image()) | ||||||
| 		imlib_free_image(); | 		imlib_free_image(); | ||||||
| 
 | 
 | ||||||
| 	if ((img->valid = _imlib_load_image(filename))) { | 	if ((img->valid = _imlib_load_image(filename))) { | ||||||
| 		imlib_context_set_anti_alias(img->aa); | 		imlib_context_set_anti_alias(img->aa); | ||||||
| 		img->scalemode = options->scalemode; | 		img->scalemode = options->scalemode; | ||||||
| 	} else { | 	} else { | ||||||
| 		im_warn = imlib_create_image_using_data(32, 32, icon_warn); |  | ||||||
| 		imlib_context_set_image(im_warn); | 		imlib_context_set_image(im_warn); | ||||||
| 		imlib_image_set_has_alpha(1); | 		imlib_image_set_has_alpha(1); | ||||||
| 		imlib_context_set_anti_alias(0); | 		imlib_context_set_anti_alias(0); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert
						Bert