mirror of
https://github.com/mintycube/st.git
synced 2024-10-22 14:05:49 +02:00
Adding universcroll patch ref. #21
This commit is contained in:
parent
a1303a8811
commit
a5435903d4
@ -15,7 +15,7 @@ Refer to [https://st.suckless.org/](https://st.suckless.org/) for details on the
|
|||||||
|
|
||||||
### Changelog:
|
### Changelog:
|
||||||
|
|
||||||
2021-05-08 - Added blinking cursor, delkey, undercurl, desktopentry, netwmicon and osc_10_11_12_2 patches
|
2021-05-08 - Added blinking cursor, delkey, undercurl,universcroll, desktopentry, netwmicon and osc_10_11_12_2 patches
|
||||||
|
|
||||||
2021-05-07 - Added xresources reload patch
|
2021-05-07 - Added xresources reload patch
|
||||||
|
|
||||||
@ -190,6 +190,10 @@ Refer to [https://st.suckless.org/](https://st.suckless.org/) for details on the
|
|||||||
- [undercurl](https://st.suckless.org/patches/undercurl/)
|
- [undercurl](https://st.suckless.org/patches/undercurl/)
|
||||||
- adds support for special underlines, e.g. curly / wavy underlines
|
- adds support for special underlines, e.g. curly / wavy underlines
|
||||||
|
|
||||||
|
- [universcroll](https://st.suckless.org/patches/universcroll/)
|
||||||
|
- allows mouse scroll without modifier keys for regardless of alt screen using the external
|
||||||
|
scroll program
|
||||||
|
|
||||||
- [vertcenter](https://st.suckless.org/patches/vertcenter/)
|
- [vertcenter](https://st.suckless.org/patches/vertcenter/)
|
||||||
- vertically center lines in the space available if you have set a larger chscale in config.h
|
- vertically center lines in the space available if you have set a larger chscale in config.h
|
||||||
|
|
||||||
|
@ -286,7 +286,11 @@ static uint forcemousemod = ShiftMask;
|
|||||||
* Beware that overloading Button1 will disable the selection.
|
* Beware that overloading Button1 will disable the selection.
|
||||||
*/
|
*/
|
||||||
static MouseShortcut mshortcuts[] = {
|
static MouseShortcut mshortcuts[] = {
|
||||||
|
#if UNIVERSCROLL_PATCH
|
||||||
|
/* mask button function argument release alt */
|
||||||
|
#else
|
||||||
/* mask button function argument release */
|
/* mask button function argument release */
|
||||||
|
#endif // UNIVERSCROLL_PATCH
|
||||||
#if CLIPBOARD_PATCH
|
#if CLIPBOARD_PATCH
|
||||||
{ XK_ANY_MOD, Button2, clippaste, {.i = 0}, 1 },
|
{ XK_ANY_MOD, Button2, clippaste, {.i = 0}, 1 },
|
||||||
#else
|
#else
|
||||||
@ -295,6 +299,9 @@ static MouseShortcut mshortcuts[] = {
|
|||||||
#if SCROLLBACK_MOUSE_PATCH
|
#if SCROLLBACK_MOUSE_PATCH
|
||||||
{ ShiftMask, Button4, kscrollup, {.i = 1} },
|
{ ShiftMask, Button4, kscrollup, {.i = 1} },
|
||||||
{ ShiftMask, Button5, kscrolldown, {.i = 1} },
|
{ ShiftMask, Button5, kscrolldown, {.i = 1} },
|
||||||
|
#elif UNIVERSCROLL_PATCH
|
||||||
|
{ XK_ANY_MOD, Button4, ttysend, {.s = "\033[5;2~"}, 0, -1 },
|
||||||
|
{ XK_ANY_MOD, Button5, ttysend, {.s = "\033[6;2~"}, 0, -1 },
|
||||||
#else
|
#else
|
||||||
{ ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
|
{ ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
|
||||||
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
|
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
|
||||||
|
@ -29,10 +29,3 @@ kscrollup(const Arg* a)
|
|||||||
tfulldirt();
|
tfulldirt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
|
||||||
int tisaltscr(void)
|
|
||||||
{
|
|
||||||
return IS_SET(MODE_ALTSCREEN);
|
|
||||||
}
|
|
||||||
#endif // SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
|
@ -15,7 +15,3 @@ typedef struct {
|
|||||||
|
|
||||||
extern MouseKey mkeys[];
|
extern MouseKey mkeys[];
|
||||||
#endif // SCROLLBACK_MOUSE_PATCH / SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
#endif // SCROLLBACK_MOUSE_PATCH / SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
||||||
|
|
||||||
#if SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
|
||||||
int tisaltscr(void);
|
|
||||||
#endif // SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
|
@ -20,6 +20,9 @@
|
|||||||
#if SCROLLBACK_PATCH || SCROLLBACK_MOUSE_PATCH || SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
#if SCROLLBACK_PATCH || SCROLLBACK_MOUSE_PATCH || SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
||||||
#include "scrollback.c"
|
#include "scrollback.c"
|
||||||
#endif
|
#endif
|
||||||
|
#if UNIVERSCROLL_PATCH || SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
||||||
|
#include "universcroll.c"
|
||||||
|
#endif
|
||||||
#if SIXEL_PATCH
|
#if SIXEL_PATCH
|
||||||
#include "sixel_st.c"
|
#include "sixel_st.c"
|
||||||
#endif
|
#endif
|
@ -20,6 +20,9 @@
|
|||||||
#if SCROLLBACK_PATCH || SCROLLBACK_MOUSE_PATCH || SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
#if SCROLLBACK_PATCH || SCROLLBACK_MOUSE_PATCH || SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
||||||
#include "scrollback.h"
|
#include "scrollback.h"
|
||||||
#endif
|
#endif
|
||||||
|
#if UNIVERSCROLL_PATCH || SCROLLBACK_MOUSE_ALTSCREEN_PATCH
|
||||||
|
#include "universcroll.h"
|
||||||
|
#endif
|
||||||
#if SIXEL_PATCH
|
#if SIXEL_PATCH
|
||||||
#include "sixel_st.h"
|
#include "sixel_st.h"
|
||||||
#endif
|
#endif
|
5
patch/universcroll.c
Normal file
5
patch/universcroll.c
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
int
|
||||||
|
tisaltscr(void)
|
||||||
|
{
|
||||||
|
return IS_SET(MODE_ALTSCREEN);
|
||||||
|
}
|
1
patch/universcroll.h
Normal file
1
patch/universcroll.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
int tisaltscr(void);
|
@ -292,6 +292,12 @@
|
|||||||
*/
|
*/
|
||||||
#define UNDERCURL_PATCH 0
|
#define UNDERCURL_PATCH 0
|
||||||
|
|
||||||
|
/* Allows mouse scroll without modifier keys for regardless of alt screen using the external
|
||||||
|
* scroll program.
|
||||||
|
* https://st.suckless.org/patches/universcroll/
|
||||||
|
*/
|
||||||
|
#define UNIVERSCROLL_PATCH 0
|
||||||
|
|
||||||
/* Vertically center lines in the space available if you have set a larger chscale in config.h
|
/* Vertically center lines in the space available if you have set a larger chscale in config.h
|
||||||
* https://st.suckless.org/patches/vertcenter/
|
* https://st.suckless.org/patches/vertcenter/
|
||||||
*/
|
*/
|
||||||
|
3
st.h
3
st.h
@ -243,6 +243,9 @@ typedef struct {
|
|||||||
void (*func)(const Arg *);
|
void (*func)(const Arg *);
|
||||||
const Arg arg;
|
const Arg arg;
|
||||||
uint release;
|
uint release;
|
||||||
|
#if UNIVERSCROLL_PATCH
|
||||||
|
int altscrn; /* 0: don't care, -1: not alt screen, 1: alt screen */
|
||||||
|
#endif // UNIVERSCROLL_PATCH
|
||||||
} MouseShortcut;
|
} MouseShortcut;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
3
x.c
3
x.c
@ -334,6 +334,9 @@ mouseaction(XEvent *e, uint release)
|
|||||||
for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) {
|
for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) {
|
||||||
if (ms->release == release &&
|
if (ms->release == release &&
|
||||||
ms->button == e->xbutton.button &&
|
ms->button == e->xbutton.button &&
|
||||||
|
#if UNIVERSCROLL_PATCH
|
||||||
|
(!ms->altscrn || (ms->altscrn == (tisaltscr() ? 1 : -1))) &&
|
||||||
|
#endif // UNIVERSCROLL_PATCH
|
||||||
(match(ms->mod, state) || /* exact or forced */
|
(match(ms->mod, state) || /* exact or forced */
|
||||||
match(ms->mod, state & ~forcemousemod))) {
|
match(ms->mod, state & ~forcemousemod))) {
|
||||||
ms->func(&(ms->arg));
|
ms->func(&(ms->arg));
|
||||||
|
Loading…
Reference in New Issue
Block a user