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