Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-combo-6.1.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-combo-6.1.diff (1867B)
---
1 diff --git a/dwm.c b/dwm.c
2 index 0362114..40b7a99 100644
3 --- a/dwm.c
4 +++ b/dwm.c
5 @@ -234,6 +234,11 @@ static int xerrordummy(Display *dpy, XErrorEvent *e…
6 static int xerrorstart(Display *dpy, XErrorEvent *ee);
7 static void zoom(const Arg *arg);
8
9 +static void keyrelease(XEvent *e);
10 +static void combotag(const Arg *arg);
11 +static void comboview(const Arg *arg);
12 +
13 +
14 /* variables */
15 static const char broken[] = "broken";
16 static char stext[256];
17 @@ -244,6 +249,7 @@ static int (*xerrorxlib)(Display *, XErrorEvent *);
18 static unsigned int numlockmask = 0;
19 static void (*handler[LASTEvent]) (XEvent *) = {
20 [ButtonPress] = buttonpress,
21 + [ButtonRelease] = keyrelease,
22 [ClientMessage] = clientmessage,
23 [ConfigureRequest] = configurerequest,
24 [ConfigureNotify] = configurenotify,
25 @@ -251,6 +257,7 @@ static void (*handler[LASTEvent]) (XEvent *) = {
26 [EnterNotify] = enternotify,
27 [Expose] = expose,
28 [FocusIn] = focusin,
29 + [KeyRelease] = keyrelease,
30 [KeyPress] = keypress,
31 [MappingNotify] = mappingnotify,
32 [MapRequest] = maprequest,
33 @@ -274,6 +281,42 @@ static Window root;
34 struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
35
36 /* function implementations */
37 +static int combo = 0;
38 +
39 +void
40 +keyrelease(XEvent *e) {
41 + combo = 0;
42 +}
43 +
44 +void
45 +combotag(const Arg *arg) {
46 + if(selmon->sel && arg->ui & TAGMASK) {
47 + if (combo) {
48 + selmon->sel->tags |= arg->ui & TAGMASK;
49 + } else {
50 + combo = 1;
51 + selmon->sel->tags = arg->ui & TAGMASK;
52 + }
53 + focus(NULL);
54 + arrange(selmon);
55 + }
56 +}
57 +
58 +void
59 +comboview(const Arg *arg) {
60 + unsigned newtags = arg->ui & TAGMASK;
61 + if (combo) {
62 + selmon->tagset[selmon->seltags] |= newtags;
63 + } else {
64 + selmon->seltags ^= 1; /*toggle tagset*/
65 + combo = 1;
66 + if (newtags)
67 + selmon->tagset[selmon->seltags] = newtags;
68 + }
69 + focus(NULL);
70 + arrange(selmon);
71 +}
72 +
73 void
74 applyrules(Client *c)
75 {
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.