Introduction
Introduction Statistics Contact Development Disclaimer Help
tsome more additions/fixes - dwm - [fork] customized build of dwm, the dynamic …
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit 2a0fc84c4af2257d79c4c7cb37131c4acb763162
parent 896f08d7d553f7def3877648c113cf03e6ca546a
Author: Anselm R. Garbe <[email protected]>
Date: Wed, 12 Jul 2006 00:00:25 +0200
some more additions/fixes
Diffstat:
M client.c | 13 +++++++++++--
M cmd.c | 16 ++++++++++++++++
M event.c | 2 +-
M kb.c | 2 ++
M wm.h | 2 ++
5 files changed, 32 insertions(+), 3 deletions(-)
---
diff --git a/client.c b/client.c
t@@ -93,6 +93,7 @@ focus(Client *c)
}
XUnmapWindow(dpy, c->title);
draw_bar();
+ discard_events(EnterWindowMask);
XFlush(dpy);
}
t@@ -116,7 +117,7 @@ manage(Window w, XWindowAttributes *wa)
XGetTransientForHint(dpy, c->win, &c->trans);
twa.override_redirect = 1;
twa.background_pixmap = ParentRelative;
- twa.event_mask = SubstructureNotifyMask | ExposureMask;
+ twa.event_mask = ExposureMask;
c->title = XCreateWindow(dpy, root, c->tx, c->ty, c->tw, c->th,
0, DefaultDepth(dpy, screen), CopyFromParent,
t@@ -191,11 +192,19 @@ unmanage(Client *c)
XFlush(dpy);
XSetErrorHandler(error_handler);
XUngrabServer(dpy);
- discard_events(EnterWindowMask);
if(stack)
focus(stack);
}
+Client *
+gettitle(Window w)
+{
+ Client *c;
+ for(c = clients; c; c = c->next)
+ if(c->title == w)
+ return c;
+ return NULL;
+}
Client *
getclient(Window w)
diff --git a/cmd.c b/cmd.c
t@@ -20,6 +20,22 @@ quit(void *aux)
}
void
+sel(void *aux)
+{
+ const char *arg = aux;
+ Client *c;
+
+ if(!arg || !stack)
+ return;
+ if(!strncmp(arg, "next", 5))
+ focus(stack->snext ? stack->snext : stack);
+ else if(!strncmp(arg, "prev", 5)) {
+ for(c = stack; c && c->snext; c = c->snext);
+ focus(c ? c : stack);
+ }
+}
+
+void
kill(void *aux)
{
Client *c = stack;
diff --git a/event.c b/event.c
t@@ -146,7 +146,7 @@ expose(XEvent *e)
Client *c;
if(ev->count == 0) {
- if((c = getclient(ev->window)))
+ if((c = gettitle(ev->window)))
draw_client(c);
else if(ev->window == barwin)
draw_bar();
diff --git a/kb.c b/kb.c
t@@ -19,6 +19,8 @@ static const char *proglist[] = {
static Key key[] = {
{ Mod1Mask, XK_Return, run, term },
{ Mod1Mask, XK_p, run, proglist },
+ { Mod1Mask, XK_k, sel, "prev"},
+ { Mod1Mask, XK_j, sel, "next"},
{ Mod1Mask | ShiftMask, XK_c, kill, NULL},
{ Mod1Mask | ShiftMask, XK_q, quit, NULL},
};
diff --git a/wm.h b/wm.h
t@@ -63,6 +63,7 @@ extern void draw_bar();
extern void run(void *aux);
extern void quit(void *aux);
extern void kill(void *aux);
+extern void sel(void *aux);
/* client.c */
extern void manage(Window w, XWindowAttributes *wa);
t@@ -73,6 +74,7 @@ extern void update_name(Client *c);
extern void draw_client(Client *c);
extern void resize(Client *c);
extern void update_size(Client *c);
+extern Client *gettitle(Window w);
/* event.c */
extern unsigned int discard_events(long even_mask);
You are viewing proxied material from mx1.adamsgaard.dk. 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.