diff options
author | Robin Watts <robin.watts@artifex.com> | 2012-03-19 11:28:07 +0000 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2012-03-19 11:31:38 +0000 |
commit | eeb1b4fffb5ee88d251d2773d9ae0fc1f8316b56 (patch) | |
tree | 2b04bb2e99b44813044b37c30d8a43d307ed20f8 | |
parent | e2d7441d73dfc09baf58314db617ca19e15fd993 (diff) | |
download | mupdf-eeb1b4fffb5ee88d251d2773d9ae0fc1f8316b56.tar.xz |
Bug 692934: Add Zoom to Width/Zoom to Height to MuPDF viewer
Simple fix to pdf app to 'fit width' and 'fit height' on W and H
respectively.
Thanks to eeva@marvid.fr for the patch.
-rw-r--r-- | apps/man/mupdf.1 | 3 | ||||
-rw-r--r-- | apps/pdfapp.c | 19 |
2 files changed, 22 insertions, 0 deletions
diff --git a/apps/man/mupdf.1 b/apps/man/mupdf.1 index e22d0ba9..c96bc22d 100644 --- a/apps/man/mupdf.1 +++ b/apps/man/mupdf.1 @@ -37,6 +37,9 @@ Scroll page left, down, up, or right. .B \+, \- Zoom in or out. .TP +.B \W, \H +Zoom so page exactly fits width or height of window. +.TP .B w Shrinkwrap window to fit the page. .TP diff --git a/apps/pdfapp.c b/apps/pdfapp.c index 881c4eb1..217a3346 100644 --- a/apps/pdfapp.c +++ b/apps/pdfapp.c @@ -50,6 +50,8 @@ char *pdfapp_usage(pdfapp_t *app) "l\t\t-- scroll right\n" "+\t\t-- zoom in\n" "-\t\t-- zoom out\n" + "W\t\t-- zoom to fit window width\n" + "H\t\t-- zoom to fit window height\n" "w\t\t-- shrinkwrap\n" "r\t\t-- reload file\n" ". pgdn right space\t-- next page\n" @@ -695,6 +697,23 @@ void pdfapp_onkey(pdfapp_t *app, int c) pdfapp_showpage(app, 0, 1, 1); break; + case 'W': + app->resolution *= (double) app->winw / (double) fz_pixmap_width(app->ctx, app->image); + if (app->resolution > MAXRES) + app->resolution = MAXRES; + else if (app->resolution < MINRES) + app->resolution = MINRES; + pdfapp_showpage(app, 0, 1, 1); + break; + case 'H': + app->resolution *= (double) app->winh / (double) fz_pixmap_height(app->ctx, app->image); + if (app->resolution > MAXRES) + app->resolution = MAXRES; + else if (app->resolution < MINRES) + app->resolution = MINRES; + pdfapp_showpage(app, 0, 1, 1); + break; + case 'L': app->rotate -= 90; pdfapp_showpage(app, 0, 1, 1); |