diff options
Diffstat (limited to 'image')
-rw-r--r-- | image/mng.c | 7 | ||||
-rw-r--r-- | image/mng.h | 1 |
2 files changed, 5 insertions, 3 deletions
diff --git a/image/mng.c b/image/mng.c index a223c7fff..a82017b1d 100644 --- a/image/mng.c +++ b/image/mng.c @@ -263,9 +263,7 @@ bool nsmng_convert(struct content *c, int width, int height) { /* Optimise the plotting of JNG/PNGs */ - if ((c->type == CONTENT_PNG) || (c->type == CONTENT_JNG)) { - bitmap_set_opaque(c->bitmap, bitmap_test_opaque(c->bitmap)); - } + c->data.mng.opaque_test_pending = (c->type == CONTENT_PNG) || (c->type == CONTENT_JNG); return true; } @@ -382,6 +380,9 @@ bool nsmng_redraw(struct content *c, int x, int y, float scale, unsigned long background_colour) { bool ret; + + if ((c->bitmap) && (c->data.mng.opaque_test_pending)) + bitmap_set_opaque(c->bitmap, bitmap_test_opaque(c->bitmap)); ret = plot.bitmap(x, y, width, height, c->bitmap, background_colour); diff --git a/image/mng.h b/image/mng.h index 6a67b840e..d0f2fcb75 100644 --- a/image/mng.h +++ b/image/mng.h @@ -17,6 +17,7 @@ struct content; struct content_mng_data { + bool opaque_test_pending; bool read_start; bool read_resume; int read_size; |