From 43a04c4757f4a20c3b9b1487ea7894c0f3e73708 Mon Sep 17 00:00:00 2001 From: Bert Münnich Date: Tue, 4 Feb 2014 23:03:53 +0100 Subject: Revised scale mode and zoom level handling - Scale mode is not reset to default value upon image loading anymore - New default key binding to change mode to scale-down - Removed scale mode setting from config.h - Removed -d command line option, as this is now the default at startup --- README.md | 12 ++++++------ config.def.h | 11 ++--------- image.c | 2 +- options.c | 9 +++------ sxiv.1 | 20 +++++++++----------- 5 files changed, 21 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 4cfc368..ba8d8ce 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,6 @@ of small previews is displayed, making it easy to choose an image to open. -b Do not show info bar on bottom of window -c Remove all orphaned cache files from thumbnail cache and exit - -d Scale all images to 100%, but fit large images into window -F Use size-hints to make the window fixed/floating -f Start in fullscreen mode -G GAMMA Set image gamma to GAMMA (-32..32) @@ -83,11 +82,11 @@ of small previews is displayed, making it easy to choose an image to open. -q Be quiet, disable warnings -r Search given directories recursively for images -S DELAY Enable slideshow and set slideshow delay to DELAY seconds - -s Scale all images to fit into window + -s Fit images to window -t Start in thumbnail mode -v Print version information and exit -Z Same as `-z 100' - -z ZOOM Scale all images to current zoom level, use ZOOM at startup + -z ZOOM Set zoom level to ZOOM percent **Key mappings:** @@ -132,9 +131,10 @@ of small previews is displayed, making it easy to choose an image to open. + Zoom in - Zoom out = Set zoom level to 100%, or [count]% - w Fit image into window - e Fit image width to window width - E Fit image height to window height + w Set zoom level to 100%, but fit large images into window + W Fit image to window + e Fit image to window width + E Fit image to window height h,j,k,l Pan image 1/5 of window width/height or [count] pixels left/down/up/right (also with arrow keys) diff --git a/config.def.h b/config.def.h index 8b835db..4236302 100644 --- a/config.def.h +++ b/config.def.h @@ -23,14 +23,6 @@ static const char * const BAR_FG_COLOR = "#EEEEEE"; #endif #ifdef _IMAGE_CONFIG -/* how should images be scaled when they are loaded? - * (also controllable via -d/-s/-Z/-z options) - * SCALE_DOWN: 100%, but fit large images into window, - * SCALE_FIT: fit all images into window, - * SCALE_ZOOM: use current zoom level, 100% at startup - */ -static const scalemode_t SCALE_MODE = SCALE_DOWN; - /* levels (in percent) to use when zooming via '-' and '+': * (first/last value is used as min/max zoom level) */ @@ -138,7 +130,8 @@ static const keymap_t keys[] = { { 0, XK_minus, i_zoom, (arg_t) -1 }, { 0, XK_KP_Subtract, i_zoom, (arg_t) -1 }, { 0, XK_equal, i_set_zoom, (arg_t) 100 }, - { 0, XK_w, i_fit_to_win, (arg_t) SCALE_FIT }, + { 0, XK_w, i_fit_to_win, (arg_t) SCALE_DOWN }, + { 0, XK_W, i_fit_to_win, (arg_t) SCALE_FIT }, { 0, XK_e, i_fit_to_win, (arg_t) SCALE_WIDTH }, { 0, XK_E, i_fit_to_win, (arg_t) SCALE_HEIGHT }, diff --git a/image.c b/image.c index ec63e85..b56ebbc 100644 --- a/image.c +++ b/image.c @@ -74,6 +74,7 @@ void img_init(img_t *img, win_t *win) img->im = NULL; img->win = win; + img->scalemode = options->scalemode; img->zoom = options->zoom; img->zoom = MAX(img->zoom, zoom_min); img->zoom = MIN(img->zoom, zoom_max); @@ -333,7 +334,6 @@ bool img_load(img_t *img, const fileinfo_t *file) img->w = imlib_image_get_width(); img->h = imlib_image_get_height(); - img->scalemode = options->scalemode; img->checkpan = true; img->dirty = true; diff --git a/options.c b/options.c index 5e6ac02..c074677 100644 --- a/options.c +++ b/options.c @@ -33,7 +33,7 @@ const options_t *options = (const options_t*) &_options; void print_usage(void) { - printf("usage: sxiv [-bcdFfhioqrstvZ] [-G GAMMA] [-g GEOMETRY] [-n NUM] " + printf("usage: sxiv [-bcFfhioqrstvZ] [-G GAMMA] [-g GEOMETRY] [-n NUM] " "[-N NAME] [-S DELAY] [-z ZOOM] FILES...\n"); } @@ -52,7 +52,7 @@ void parse_options(int argc, char **argv) _options.recursive = false; _options.startnum = 0; - _options.scalemode = SCALE_MODE; + _options.scalemode = SCALE_DOWN; _options.zoom = 1.0; _options.gamma = 0; _options.slideshow = 0; @@ -67,7 +67,7 @@ void parse_options(int argc, char **argv) _options.thumb_mode = false; _options.clean_cache = false; - while ((opt = getopt(argc, argv, "bcdFfG:g:hin:N:oqrS:stvZz:")) != -1) { + while ((opt = getopt(argc, argv, "bcFfG:g:hin:N:oqrS:stvZz:")) != -1) { switch (opt) { case '?': print_usage(); @@ -78,9 +78,6 @@ void parse_options(int argc, char **argv) case 'c': _options.clean_cache = true; break; - case 'd': - _options.scalemode = SCALE_DOWN; - break; case 'F': _options.fixed_win = true; break; diff --git a/sxiv.1 b/sxiv.1 index 7999efd..5000b11 100644 --- a/sxiv.1 +++ b/sxiv.1 @@ -3,7 +3,7 @@ sxiv \- Simple X Image Viewer .SH SYNOPSIS .B sxiv -.RB [ \-bcdFfhiopqrstvZ ] +.RB [ \-bcFfhioqrstvZ ] .RB [ \-G .IR GAMMA ] .RB [ \-g @@ -38,9 +38,6 @@ Do not show info bar on bottom of window. .B \-c Remove all orphaned cache files from the thumbnail cache directory and exit. .TP -.B \-d -Scale all images to 100%, but fit large images into window. -.TP .B \-F Make the window fixed/floating by setting the minimum and maximum width/height size-hints to the window width/height. @@ -84,7 +81,7 @@ Search the given directories recursively for images to view. Start in slideshow mode. Set the delay between images to DELAY seconds. .TP .B \-s -Scale all images to fit into window. +Fit images to window. .TP .B \-t Start in thumbnail mode. @@ -96,9 +93,7 @@ Print version information to standard output and exit. The same as `\-z 100'. .TP .BI "\-z " ZOOM -Scale all images to the current zoom level, use a zoom level of -.I ZOOM -at startup. +Set zoom level to ZOOM percent. .SH GENERAL KEYBOARD COMMANDS The following keyboard commands are available in both image and thumbnail mode: .TP @@ -229,13 +224,16 @@ Set zoom level to 100%, or .IR count %. .TP .B w -Set zoom level to fit image into window. +Set zoom level to 100%, but fit large images into window. +.TP +.B W +Fit image to window. .TP .B e -Set zoom level to fit image width to window width. +Fit image to window width. .TP .B E -Set zoom level to fit image height to window height. +Fit image to window height. .SS Panning .TP .BR h ", " Left -- cgit v1.2.3-54-g00ecf