Add default key-binding for DRAG_RELATIVE (#117)
Ctrl-Button1 now has a relative drag using the XC_fleur cursor. XC_fleur is normally the cursor for "size all" action, which has 4 arrows pointing to 4 directions. Co-authored-by: NRK <nrk@disroot.org>
This commit is contained in:
parent
1f01c670c5
commit
57754572bc
|
@ -338,7 +338,7 @@ bool ci_drag(arg_t mode)
|
||||||
if ((int)(img.w * img.zoom) <= win.w && (int)(img.h * img.zoom) <= win.h)
|
if ((int)(img.w * img.zoom) <= win.w && (int)(img.h * img.zoom) <= win.h)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
win_set_cursor(&win, CURSOR_DRAG);
|
win_set_cursor(&win, mode == DRAG_ABSOLUTE ? CURSOR_DRAG_ABSOLUTE : CURSOR_DRAG_RELATIVE);
|
||||||
win_cursor_pos(&win, &x, &y);
|
win_cursor_pos(&win, &x, &y);
|
||||||
ox = x;
|
ox = x;
|
||||||
oy = y;
|
oy = y;
|
||||||
|
|
|
@ -158,6 +158,7 @@ static const keymap_t keys[] = {
|
||||||
static const button_t buttons[] = {
|
static const button_t buttons[] = {
|
||||||
/* modifiers button function argument */
|
/* modifiers button function argument */
|
||||||
{ 0, 1, i_cursor_navigate, None },
|
{ 0, 1, i_cursor_navigate, None },
|
||||||
|
{ ControlMask, 1, i_drag, DRAG_RELATIVE },
|
||||||
{ 0, 2, i_drag, DRAG_ABSOLUTE },
|
{ 0, 2, i_drag, DRAG_ABSOLUTE },
|
||||||
{ 0, 3, g_switch_mode, None },
|
{ 0, 3, g_switch_mode, None },
|
||||||
{ 0, 4, g_zoom, +1 },
|
{ 0, 4, g_zoom, +1 },
|
||||||
|
|
3
nsxiv.1
3
nsxiv.1
|
@ -390,6 +390,9 @@ Panning:
|
||||||
Pan the image according to the mouse cursor position in the window while
|
Pan the image according to the mouse cursor position in the window while
|
||||||
keeping this button pressed down.
|
keeping this button pressed down.
|
||||||
.TP
|
.TP
|
||||||
|
.B Ctrl-Button1
|
||||||
|
Pan the image relative to the mouse cursor.
|
||||||
|
.TP
|
||||||
Zooming:
|
Zooming:
|
||||||
.TP
|
.TP
|
||||||
.B ScrollUp
|
.B ScrollUp
|
||||||
|
|
3
nsxiv.h
3
nsxiv.h
|
@ -99,7 +99,8 @@ typedef enum {
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
CURSOR_ARROW,
|
CURSOR_ARROW,
|
||||||
CURSOR_DRAG,
|
CURSOR_DRAG_ABSOLUTE,
|
||||||
|
CURSOR_DRAG_RELATIVE,
|
||||||
CURSOR_WATCH,
|
CURSOR_WATCH,
|
||||||
CURSOR_LEFT,
|
CURSOR_LEFT,
|
||||||
CURSOR_RIGHT,
|
CURSOR_RIGHT,
|
||||||
|
|
2
window.c
2
window.c
|
@ -51,7 +51,7 @@ static struct {
|
||||||
int name;
|
int name;
|
||||||
Cursor icon;
|
Cursor icon;
|
||||||
} cursors[CURSOR_COUNT] = {
|
} cursors[CURSOR_COUNT] = {
|
||||||
{ XC_left_ptr }, { XC_dotbox }, { XC_watch },
|
{ XC_left_ptr }, { XC_dotbox }, { XC_fleur }, { XC_watch },
|
||||||
{ XC_sb_left_arrow }, { XC_sb_right_arrow }
|
{ XC_sb_left_arrow }, { XC_sb_right_arrow }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue