sites

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 0c298c3d89633cb125acdfb3267cab64ba0fd265
parent b286aad12c2298529e9a34b16ebf4e8ba9c02a6c
Author: Dan McNair <cosfx@h0v3.net>
Date:   Tue,  9 Oct 2012 21:58:05 -0500

updated combo for dwm-6.0
Diffstat:
Mdwm.suckless.org/patches/combo.md | 2++
Adwm.suckless.org/patches/dwm-6.0-combo.diff | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/dwm.suckless.org/patches/combo.md b/dwm.suckless.org/patches/combo.md @@ -19,8 +19,10 @@ Download -------- * [dwm-5.9-combo.diff](dwm-5.9-combo.diff) (2010-10-30) + * [dwm-6.0-combo.diff](dwm-6.0-combo.diff) (2012-10-09) Author ------ * Wolf Tivy - wolf at tivy dot com. + * Dan McNair - cosfx at h0v3 dot net (mechanical update to 6.0) diff --git a/dwm.suckless.org/patches/dwm-6.0-combo.diff b/dwm.suckless.org/patches/dwm-6.0-combo.diff @@ -0,0 +1,74 @@ +diff -r c361034c5a1c dwm.c +--- a/dwm.c Sat Sep 11 19:00:18 2010 +0000 ++++ b/dwm.c Thu Nov 25 22:54:04 2010 -0800 +@@ -243,6 +243,11 @@ + static int xerrorstart(Display *dpy, XErrorEvent *ee); + static void zoom(const Arg *arg); + ++static void keyrelease(XEvent *e); ++static void combotag(const Arg *arg); ++static void comboview(const Arg *arg); ++ ++ + /* variables */ + static const char broken[] = "broken"; + static char stext[256]; +@@ -253,6 +258,7 @@ + static unsigned int numlockmask = 0; + static void (*handler[LASTEvent]) (XEvent *) = { + [ButtonPress] = buttonpress, ++ [ButtonRelease] = keyrelease, + [ClientMessage] = clientmessage, + [ConfigureRequest] = configurerequest, + [ConfigureNotify] = configurenotify, +@@ -260,6 +266,7 @@ + [EnterNotify] = enternotify, + [Expose] = expose, + [FocusIn] = focusin, ++ [KeyRelease] = keyrelease, + [KeyPress] = keypress, + [MappingNotify] = mappingnotify, + [MapRequest] = maprequest, +@@ -282,6 +289,42 @@ + struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; }; + + /* function implementations */ ++static int combo = 0; ++ ++void ++keyrelease(XEvent *e) { ++ combo = 0; ++} ++ ++void ++combotag(const Arg *arg) { ++ if(selmon->sel && arg->ui & TAGMASK) { ++ if (combo) { ++ selmon->sel->tags |= arg->ui & TAGMASK; ++ } else { ++ combo = 1; ++ selmon->sel->tags = arg->ui & TAGMASK; ++ } ++ focus(NULL); ++ arrange(selmon); ++ } ++} ++ ++void ++comboview(const Arg *arg) { ++ unsigned newtags = arg->ui & TAGMASK; ++ if (combo) { ++ selmon->tagset[selmon->seltags] |= newtags; ++ } else { ++ selmon->seltags ^= 1; /*toggle tagset*/ ++ combo = 1; ++ if (newtags) ++ selmon->tagset[selmon->seltags] = newtags; ++ } ++ focus(NULL); ++ arrange(selmon); ++} ++ + void + applyrules(Client *c) { + const char *class, *instance;