diff options
| author | Yui Hirasawa | 2020-06-13 02:56:10 +1000 |
|---|---|---|
| committer | Yui Hirasawa | 2020-06-13 02:56:10 +1000 |
| commit | b83faf078b50ba5d1b8526f3579e74dc22242e93 (patch) | |
| tree | 581ef45d432e8c9f07b989ef43252e6875bd9778 /st-scrollback-mouse-altscreen-20200416-5703aa0.diff | |
| parent | 1b0a19d1ef1b3f1629a8ce67e71dd0be91e87636 (diff) | |
| download | st-b83faf078b50ba5d1b8526f3579e74dc22242e93.tar.gz st-b83faf078b50ba5d1b8526f3579e74dc22242e93.zip | |
Added mouse scrolling (no modifier) patch
Diffstat (limited to 'st-scrollback-mouse-altscreen-20200416-5703aa0.diff')
| -rw-r--r-- | st-scrollback-mouse-altscreen-20200416-5703aa0.diff | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/st-scrollback-mouse-altscreen-20200416-5703aa0.diff b/st-scrollback-mouse-altscreen-20200416-5703aa0.diff new file mode 100644 index 0000000..fbade29 --- /dev/null +++ b/st-scrollback-mouse-altscreen-20200416-5703aa0.diff @@ -0,0 +1,63 @@ +diff --git a/config.def.h b/config.def.h +index 4b3bf15..1986316 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -163,8 +163,8 @@ static uint forcemousemod = ShiftMask; + */ + static MouseShortcut mshortcuts[] = { + /* mask button function argument release */ +- { ShiftMask, Button4, kscrollup, {.i = 1} }, +- { ShiftMask, Button5, kscrolldown, {.i = 1} }, ++ { XK_ANY_MOD, Button4, kscrollup, {.i = 1}, 0, /* !alt */ -1 }, ++ { XK_ANY_MOD, Button5, kscrolldown, {.i = 1}, 0, /* !alt */ -1 }, + { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, + { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, + { XK_ANY_MOD, Button5, ttysend, {.s = "\005"} }, +diff --git a/st.c b/st.c +index f8b6f67..dd4cb31 100644 +--- st.c ++++ st.c +@@ -1045,6 +1045,11 @@ tnew(int col, int row) + treset(); + } + ++int tisaltscr(void) ++{ ++ return IS_SET(MODE_ALTSCREEN); ++} ++ + void + tswapscreen(void) + { +diff --git a/st.h b/st.h +index 1332cf1..f9ad815 100644 +--- st.h ++++ st.h +@@ -89,6 +89,7 @@ void sendbreak(const Arg *); + void toggleprinter(const Arg *); + + int tattrset(int); ++int tisaltscr(void); + void tnew(int, int); + void tresize(int, int); + void tsetdirtattr(int); +diff --git a/x.c b/x.c +index e5f1737..b8fbd7b 100644 +--- x.c ++++ x.c +@@ -34,6 +34,7 @@ typedef struct { + void (*func)(const Arg *); + const Arg arg; + uint release; ++ int altscrn; /* 0: don't care, -1: not alt screen, 1: alt screen */ + } MouseShortcut; + + typedef struct { +@@ -446,6 +447,7 @@ mouseaction(XEvent *e, uint release) + for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) { + if (ms->release == release && + ms->button == e->xbutton.button && ++ (!ms->altscrn || (ms->altscrn == (tisaltscr() ? 1 : -1))) && + (match(ms->mod, state) || /* exact or forced */ + match(ms->mod, state & ~forcemousemod))) { + ms->func(&(ms->arg)); |
