Browse Source

New key mapping: D, remove image from file list

master
Bert 13 years ago
parent
commit
fa81707540
3 changed files with 42 additions and 8 deletions
  1. +2
    -1
      README.md
  2. +36
    -4
      main.c
  3. +4
    -3
      sxiv.1

+ 2
- 1
README.md View File

@@ -53,7 +53,6 @@ sxiv supports the following command-line options:
Use the following keys to control the basic behaviour of sxiv:

q Quit sxiv
Escape Quit sxiv and return an exit value of 2 (useful for scripting)
f Toggle fullscreen mode (requires an EWMH/NetWM compliant
window manager)

@@ -73,6 +72,7 @@ Inside image view mode, the following key mappings are available:
a Toggle anti-aliasing
A Toggle visibility of alpha-channel, i.e. transparency
r Reload image
D Remove image from file list and go to next image
Return Switch to thumbnail mode

Additionally, the image view offers the following mouse commands:
@@ -91,6 +91,7 @@ In thumbnail mode, the following key and mouse mappings are available:

h,j,k,l Move selection left/down/up/right (also with arrow keys)
g/G Move selection to first/last image
D Remove selected image from file list and select next image
Return Open selected image

Button1 Select image/open image if it is already selected


+ 36
- 4
main.c View File

@@ -370,7 +370,7 @@ void redraw() {
}

void on_keypress(XKeyEvent *kev) {
int x, y;
int i, x, y;
unsigned int w, h;
char key;
KeySym ksym;
@@ -385,10 +385,10 @@ void on_keypress(XKeyEvent *kev) {
#ifdef EXT_COMMANDS
/* external commands from commands.h */
if (CLEANMASK(kev->state) & ControlMask) {
for (x = 0; x < LEN(commands); ++x) {
if (commands[x].ksym == ksym) {
for (i = 0; i < LEN(commands); ++i) {
if (commands[i].ksym == ksym) {
win_set_cursor(&win, CURSOR_WATCH);
if (run_command(commands[x].cmdline, commands[x].reload)) {
if (run_command(commands[i].cmdline, commands[i].reload)) {
if (mode == MODE_NORMAL) {
img_close(&img, 1);
load_image(fileidx);
@@ -571,6 +571,38 @@ void on_keypress(XKeyEvent *kev) {
win_toggle_fullscreen(&win);
/* render on next configurenotify */
break;

case XK_D:
if (mode == MODE_THUMBS) {
if (tns.sel >= tns.cnt)
break;
i = tns.sel;
} else {
i = fileidx;
}
if (filecnt == 1) {
cleanup();
exit(0);
}
if (i + 1 < filecnt)
memmove(filenames + i, filenames + i + 1, (filecnt - i - 1) *
sizeof(const char*));
else if (fileidx)
fileidx--;
if (i + 1 < tns.cnt) {
memmove(tns.thumbs + i, tns.thumbs + i + 1, (tns.cnt - i - 1) *
sizeof(thumb_t));
memset(tns.thumbs + tns.cnt - 1, 0, sizeof(thumb_t));
} else if (tns.sel) {
tns.sel--;
}
filecnt--;
if (mode == MODE_NORMAL)
load_image(fileidx);
if (i < tns.cnt)
tns.cnt--;
changed = tns.dirty = 1;
break;
}

if (changed)


+ 4
- 3
sxiv.1 View File

@@ -82,9 +82,6 @@ at startup.
.B q
Quit sxiv.
.TP
.B Escape
Quit sxiv and return an exit value of 2.
.TP
.B Return
Switch to thumbnail mode; in thumbnail mode: open selected image.
.SS Navigate image list
@@ -156,6 +153,10 @@ Toggle visibility of alpha-channel, i.e. image transparency.
.TP
.B r
Reload image.
.TP
.B D
Remove image from file list and go to next image; in thumbnail mode: remove
selected image from file list and select next image.
.SH MOUSE COMMANDS
.SS Navigate image list
.TP


Loading…
Cancel
Save