diff options
Diffstat (limited to 'image/gif.c')
-rw-r--r-- | image/gif.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/image/gif.c b/image/gif.c index 697ef408f..8fabf5033 100644 --- a/image/gif.c +++ b/image/gif.c @@ -220,7 +220,12 @@ void nsgif_animate(void *p) data.redraw.full_redraw = c->data.gif.gif->frames[c->data.gif.current_frame - 1].redraw_required; } else { - data.redraw.full_redraw = true; + /* do advanced check */ + data.redraw.full_redraw = !((c->data.gif.current_frame == 0) && + (bitmap_get_opaque(c->data.gif.gif->frame_image)) && + (data.redraw.x == 0) && (data.redraw.y == 0) && + (data.redraw.width = c->data.gif.gif->width) && + (data.redraw.height = c->data.gif.gif->height)); } /* other data */ |