Introduction
Introduction Statistics Contact Development Disclaimer Help
st-scrollback-mouse-0.8.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
st-scrollback-mouse-0.8.diff (1813B)
---
1 diff --git a/config.def.h b/config.def.h
2 index 27d42ca..feec7e2 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -156,8 +156,14 @@ static unsigned int defaultattr = 11;
6 */
7 static MouseShortcut mshortcuts[] = {
8 /* button mask string */
9 - { Button4, XK_ANY_MOD, "\031" },
10 - { Button5, XK_ANY_MOD, "\005" },
11 + { Button4, XK_NO_MOD, "\031" },
12 + { Button5, XK_NO_MOD, "\005" },
13 +};
14 +
15 +MouseKey mkeys[] = {
16 + /* button mask function argumen…
17 + { Button4, ShiftMask, kscrollup, {.i = …
18 + { Button5, ShiftMask, kscrolldown, {.i = …
19 };
20
21 /* Internal keyboard shortcuts. */
22 diff --git a/st.h b/st.h
23 index 628e876..cdd25ae 100644
24 --- a/st.h
25 +++ b/st.h
26 @@ -81,6 +81,13 @@ typedef union {
27 const void *v;
28 } Arg;
29
30 +typedef struct {
31 + uint b;
32 + uint mask;
33 + void (*func)(const Arg *);
34 + const Arg arg;
35 +} MouseKey;
36 +
37 void die(const char *, ...);
38 void redraw(void);
39 void draw(void);
40 @@ -129,3 +136,4 @@ extern char *termname;
41 extern unsigned int tabspaces;
42 extern unsigned int defaultfg;
43 extern unsigned int defaultbg;
44 +extern MouseKey mkeys[];
45 diff --git a/x.c b/x.c
46 index d43a529..754d859 100644
47 --- a/x.c
48 +++ b/x.c
49 @@ -409,6 +409,7 @@ bpress(XEvent *e)
50 {
51 struct timespec now;
52 MouseShortcut *ms;
53 + MouseKey *mk;
54 int snap;
55
56 if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) {
57 @@ -424,6 +425,14 @@ bpress(XEvent *e)
58 }
59 }
60
61 + for (mk = mkeys; mk < mkeys + LEN(mkeys); mk++) {
62 + if (e->xbutton.button == mk->b
63 + && match(mk->mask, e->xbutton.state)) {
64 + mk->func(&mk->arg);
65 + return;
66 + }
67 + }
68 +
69 if (e->xbutton.button == Button1) {
70 /*
71 * If the user clicks below predefined timeouts specific
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.