diff options
Diffstat (limited to 'apps/gui/icon.c')
-rw-r--r-- | apps/gui/icon.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/gui/icon.c b/apps/gui/icon.c index 4c006f947a..d24d8bb677 100644 --- a/apps/gui/icon.c +++ b/apps/gui/icon.c | |||
@@ -189,7 +189,7 @@ static void load_icons(const char* filename, enum Iconset iconset, | |||
189 | enum screen_type screen) | 189 | enum screen_type screen) |
190 | { | 190 | { |
191 | int size_read; | 191 | int size_read; |
192 | int bmpformat = (FORMAT_NATIVE|FORMAT_DITHER); | 192 | int bmpformat = (FORMAT_NATIVE|FORMAT_DITHER|FORMAT_TRANSPARENT); |
193 | struct iconset *ic = &iconsets[iconset][screen]; | 193 | struct iconset *ic = &iconsets[iconset][screen]; |
194 | int fd; | 194 | int fd; |
195 | 195 | ||
@@ -217,6 +217,9 @@ static void load_icons(const char* filename, enum Iconset iconset, | |||
217 | size_read = read_bmp_fd(fd, &ic->bmp, buf_size, bmpformat, NULL); | 217 | size_read = read_bmp_fd(fd, &ic->bmp, buf_size, bmpformat, NULL); |
218 | ic->handle_locked = 0; | 218 | ic->handle_locked = 0; |
219 | 219 | ||
220 | /* free unused alpha channel, if any */ | ||
221 | core_shrink(ic->handle, ic->bmp.data, size_read); | ||
222 | |||
220 | if (size_read <= 0) | 223 | if (size_read <= 0) |
221 | ic->handle = core_free(ic->handle); | 224 | ic->handle = core_free(ic->handle); |
222 | else | 225 | else |