diff options
-rw-r--r-- | apps/pdfapp.c | 6 | ||||
-rw-r--r-- | apps/x11_main.c | 8 |
2 files changed, 11 insertions, 3 deletions
diff --git a/apps/pdfapp.c b/apps/pdfapp.c index c3b7d54f..ff23c4b2 100644 --- a/apps/pdfapp.c +++ b/apps/pdfapp.c @@ -1677,7 +1677,6 @@ void pdfapp_postblit(pdfapp_t *app) if (llama >= 256) { /* Completed. */ - app->in_transit = 0; fz_drop_pixmap(app->ctx, app->image); app->image = app->new_image; app->new_image = NULL; @@ -1689,4 +1688,9 @@ void pdfapp_postblit(pdfapp_t *app) else fz_generate_transition(app->image, app->old_image, app->new_image, llama, &app->transition); winrepaint(app); + if (llama >= 256) + { + /* Completed. */ + app->in_transit = 0; + } } diff --git a/apps/x11_main.c b/apps/x11_main.c index 364013c8..987e3594 100644 --- a/apps/x11_main.c +++ b/apps/x11_main.c @@ -79,6 +79,7 @@ static int mapped = 0; static Cursor xcarrow, xchand, xcwait, xccaret; static int justcopied = 0; static int dirty = 0; +static int transition_dirty = 0; static int dirtysearch = 0; static char *password = ""; static XColor xbgcolor; @@ -504,6 +505,8 @@ static void winblit(pdfapp_t *app) void winrepaint(pdfapp_t *app) { dirty = 1; + if (app->in_transit) + transition_dirty = 1; } void winrepaintsearch(pdfapp_t *app) @@ -779,7 +782,7 @@ int main(int argc, char **argv) while (!closing) { - while (!closing && XPending(xdpy) && !dirty) + while (!closing && XPending(xdpy) && !transition_dirty) { XNextEvent(xdpy, &xevt); @@ -886,6 +889,7 @@ int main(int argc, char **argv) else if (dirtysearch) winblitsearch(&gapp); dirty = 0; + transition_dirty = 0; dirtysearch = 0; pdfapp_postblit(&gapp); } @@ -899,7 +903,7 @@ int main(int argc, char **argv) timeradd(&now, &tmo, &tmo_at); } - if (XPending(xdpy) || dirty) + if (XPending(xdpy) || transition_dirty) continue; timeout = NULL; |