ソースを参照

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
master
Bert Münnich 10年前
コミット
43a04c4757
5個のファイルの変更21行の追加33行の削除
  1. +6
    -6
      README.md
  2. +2
    -9
      config.def.h
  3. +1
    -1
      image.c
  4. +3
    -6
      options.c
  5. +9
    -11
      sxiv.1

+ 6
- 6
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 -b Do not show info bar on bottom of window
-c Remove all orphaned cache files from thumbnail cache and exit -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 Use size-hints to make the window fixed/floating
-f Start in fullscreen mode -f Start in fullscreen mode
-G GAMMA Set image gamma to GAMMA (-32..32) -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 -q Be quiet, disable warnings
-r Search given directories recursively for images -r Search given directories recursively for images
-S DELAY Enable slideshow and set slideshow delay to DELAY seconds -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 -t Start in thumbnail mode
-v Print version information and exit -v Print version information and exit
-Z Same as `-z 100' -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:** **Key mappings:**


@@ -132,9 +131,10 @@ of small previews is displayed, making it easy to choose an image to open.
+ Zoom in + Zoom in
- Zoom out - Zoom out
= Set zoom level to 100%, or [count]% = 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 h,j,k,l Pan image 1/5 of window width/height or [count] pixels
left/down/up/right (also with arrow keys) left/down/up/right (also with arrow keys)


+ 2
- 9
config.def.h ファイルの表示

@@ -23,14 +23,6 @@ static const char * const BAR_FG_COLOR = "#EEEEEE";
#endif #endif
#ifdef _IMAGE_CONFIG #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 '+': /* levels (in percent) to use when zooming via '-' and '+':
* (first/last value is used as min/max zoom level) * (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_minus, i_zoom, (arg_t) -1 },
{ 0, XK_KP_Subtract, 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_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_WIDTH },
{ 0, XK_E, i_fit_to_win, (arg_t) SCALE_HEIGHT }, { 0, XK_E, i_fit_to_win, (arg_t) SCALE_HEIGHT },




+ 1
- 1
image.c ファイルの表示

@@ -74,6 +74,7 @@ void img_init(img_t *img, win_t *win)


img->im = NULL; img->im = NULL;
img->win = win; img->win = win;
img->scalemode = options->scalemode;
img->zoom = options->zoom; img->zoom = options->zoom;
img->zoom = MAX(img->zoom, zoom_min); img->zoom = MAX(img->zoom, zoom_min);
img->zoom = MIN(img->zoom, zoom_max); 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->w = imlib_image_get_width();
img->h = imlib_image_get_height(); img->h = imlib_image_get_height();
img->scalemode = options->scalemode;
img->checkpan = true; img->checkpan = true;
img->dirty = true; img->dirty = true;




+ 3
- 6
options.c ファイルの表示

@@ -33,7 +33,7 @@ const options_t *options = (const options_t*) &_options;


void print_usage(void) 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"); "[-N NAME] [-S DELAY] [-z ZOOM] FILES...\n");
} }


@@ -52,7 +52,7 @@ void parse_options(int argc, char **argv)
_options.recursive = false; _options.recursive = false;
_options.startnum = 0; _options.startnum = 0;


_options.scalemode = SCALE_MODE;
_options.scalemode = SCALE_DOWN;
_options.zoom = 1.0; _options.zoom = 1.0;
_options.gamma = 0; _options.gamma = 0;
_options.slideshow = 0; _options.slideshow = 0;
@@ -67,7 +67,7 @@ void parse_options(int argc, char **argv)
_options.thumb_mode = false; _options.thumb_mode = false;
_options.clean_cache = 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) { switch (opt) {
case '?': case '?':
print_usage(); print_usage();
@@ -78,9 +78,6 @@ void parse_options(int argc, char **argv)
case 'c': case 'c':
_options.clean_cache = true; _options.clean_cache = true;
break; break;
case 'd':
_options.scalemode = SCALE_DOWN;
break;
case 'F': case 'F':
_options.fixed_win = true; _options.fixed_win = true;
break; break;


+ 9
- 11
sxiv.1 ファイルの表示

@@ -3,7 +3,7 @@
sxiv \- Simple X Image Viewer sxiv \- Simple X Image Viewer
.SH SYNOPSIS .SH SYNOPSIS
.B sxiv .B sxiv
.RB [ \-bcdFfhiopqrstvZ ]
.RB [ \-bcFfhioqrstvZ ]
.RB [ \-G .RB [ \-G
.IR GAMMA ] .IR GAMMA ]
.RB [ \-g .RB [ \-g
@@ -38,9 +38,6 @@ Do not show info bar on bottom of window.
.B \-c .B \-c
Remove all orphaned cache files from the thumbnail cache directory and exit. Remove all orphaned cache files from the thumbnail cache directory and exit.
.TP .TP
.B \-d
Scale all images to 100%, but fit large images into window.
.TP
.B \-F .B \-F
Make the window fixed/floating by setting the minimum and maximum width/height Make the window fixed/floating by setting the minimum and maximum width/height
size-hints to the window 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. Start in slideshow mode. Set the delay between images to DELAY seconds.
.TP .TP
.B \-s .B \-s
Scale all images to fit into window.
Fit images to window.
.TP .TP
.B \-t .B \-t
Start in thumbnail mode. Start in thumbnail mode.
@@ -96,9 +93,7 @@ Print version information to standard output and exit.
The same as `\-z 100'. The same as `\-z 100'.
.TP .TP
.BI "\-z " ZOOM .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 .SH GENERAL KEYBOARD COMMANDS
The following keyboard commands are available in both image and thumbnail mode: The following keyboard commands are available in both image and thumbnail mode:
.TP .TP
@@ -229,13 +224,16 @@ Set zoom level to 100%, or
.IR count %. .IR count %.
.TP .TP
.B w .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 .TP
.B e .B e
Set zoom level to fit image width to window width.
Fit image to window width.
.TP .TP
.B E .B E
Set zoom level to fit image height to window height.
Fit image to window height.
.SS Panning .SS Panning
.TP .TP
.BR h ", " Left .BR h ", " Left


読み込み中…
キャンセル
保存