diff options
| author | Mateja <mail@matejamaric.com> | 2021-04-09 22:46:44 +0200 | 
|---|---|---|
| committer | Mateja <mail@matejamaric.com> | 2021-04-09 22:46:44 +0200 | 
| commit | c2131a689c5b83d2f5015f5afdce5ab3bc58e734 (patch) | |
| tree | 0254a67ee8978af7663be9eca0d3459a58adb8c8 | |
| parent | 09f652d8aff93ba8b7e96d07a58c1aa520f44a2f (diff) | |
| download | st-c2131a689c5b83d2f5015f5afdce5ab3bc58e734.tar.gz st-c2131a689c5b83d2f5015f5afdce5ab3bc58e734.zip | |
Applied third `scrollback` patch.
Allow scrollback using mouse wheel only when not in MODE_ALTSCREEN.
| -rw-r--r-- | config.def.h | 4 | ||||
| -rw-r--r-- | st.c | 5 | ||||
| -rw-r--r-- | st.h | 1 | ||||
| -rw-r--r-- | x.c | 2 | 
4 files changed, 10 insertions, 2 deletions
| diff --git a/config.def.h b/config.def.h index bdeeca4..3eaba27 100644 --- a/config.def.h +++ b/config.def.h @@ -189,8 +189,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 },  	{ ShiftMask,            Button4, ttysend,        {.s = "\033[5;2~"} },  	{ XK_ANY_MOD,           Button4, ttysend,        {.s = "\031"} }, @@ -1058,6 +1058,11 @@ tnew(int col, int row)  	treset();  } +int tisaltscr(void) +{ +	return IS_SET(MODE_ALTSCREEN); +} +  void  tswapscreen(void)  { @@ -91,6 +91,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); @@ -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 { @@ -448,6 +449,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)); | 
