Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
dwm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
087f21a
)
fix monocle mode
author
Jason Woofenden
<jason@jasonwoof.com>
Thu, 26 Mar 2015 01:19:13 +0000
(21:19 -0400)
committer
Jason Woofenden
<jason@jasonwoof.com>
Thu, 26 Mar 2015 01:19:13 +0000
(21:19 -0400)
dwm.c
patch
|
blob
|
history
diff --git
a/dwm.c
b/dwm.c
index
dd3bc84
..
0a488fa
100644
(file)
--- a/
dwm.c
+++ b/
dwm.c
@@
-187,6
+187,7
@@
static void monocle(Monitor *m);
static void motionnotify(XEvent *e);
static void movemouse(const Arg *arg);
static Client *nexttiled(Client *c);
static void motionnotify(XEvent *e);
static void movemouse(const Arg *arg);
static Client *nexttiled(Client *c);
+static Client *snexttiled(Client *c);
static Client *nextvisible(Client *c);
static void pop(Client *);
static void propertynotify(XEvent *e);
static Client *nextvisible(Client *c);
static void pop(Client *);
static void propertynotify(XEvent *e);
@@
-374,7
+375,7
@@
applyrules(Client *c) {
Bool
applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact) {
Bool baseismin;
Bool
applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact) {
Bool baseismin;
- Monitor *m = c->mon;
+ // Monitor *m = c->mon;
/* set minimum possible */
*w = MAX(1, *w);
/* set minimum possible */
*w = MAX(1, *w);
@@
-389,16
+390,17
@@
applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact) {
if(*y + *h + 2 * c->bw < 0)
*y = 0;
}
if(*y + *h + 2 * c->bw < 0)
*y = 0;
}
- else {
- if(*x >= m->wx + m->ww)
- *x = m->wx + m->ww - WIDTH(c);
- if(*y >= m->wy + m->wh)
- *y = m->wy + m->wh - HEIGHT(c);
- if(*x + *w + 2 * c->bw <= m->wx)
- *x = m->wx;
- if(*y + *h + 2 * c->bw <= m->wy)
- *y = m->wy;
- }
+ // jason: let windows be offscreen
+ //else {
+ // if(*x >= m->wx + m->ww)
+ // *x = m->wx + m->ww - WIDTH(c);
+ // if(*y >= m->wy + m->wh)
+ // *y = m->wy + m->wh - HEIGHT(c);
+ // if(*x + *w + 2 * c->bw <= m->wx)
+ // *x = m->wx;
+ // if(*y + *h + 2 * c->bw <= m->wy)
+ // *y = m->wy;
+ //}
if(*h < bh)
*h = bh;
if(*w < bh)
if(*h < bh)
*h = bh;
if(*w < bh)
@@
-599,6
+601,7
@@
clientmessage(XEvent *e) {
|| (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ && !c->isfullscreen)));
}
else if(cme->message_type == netatom[NetActiveWindow]) {
|| (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ && !c->isfullscreen)));
}
else if(cme->message_type == netatom[NetActiveWindow]) {
+ // Jason added this so apps can't steal focus:
return;
if(!ISVISIBLE(c)) {
c->mon->seltags ^= 1;
return;
if(!ISVISIBLE(c)) {
c->mon->seltags ^= 1;
@@
-889,7
+892,7
@@
focus(Client *c) {
XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
}
selmon->sel = c;
XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
}
selmon->sel = c;
- jason_layout(selmon);
+ arrange(selmon);
update_window_opacities(selmon);
drawbars();
if(c && (!root || (c->win!=root)) )
update_window_opacities(selmon);
drawbars();
if(c && (!root || (c->win!=root)) )
@@
-1198,8
+1201,13
@@
monocle(Monitor *m) {
n++;
if(n > 0) /* override layout symbol */
snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
n++;
if(n > 0) /* override layout symbol */
snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
- for(c = nexttiled(m->clients); c; c = nexttiled(c->next))
- resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False, 0);
+ for(c = snexttiled(m->stack); c; c = snexttiled(c->snext)) {
+ if (c == m->sel) {
+ resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False, 0);
+ } else {
+ resize(c, m->wx, m->wy - 4000, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False, 0);
+ }
+ }
}
void
}
void
@@
-1287,6
+1295,12
@@
nexttiled(Client *c) {
}
Client *
}
Client *
+snexttiled(Client *c) {
+ for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->snext);
+ return c;
+}
+
+Client *
nextvisible(Client *c) {
for(; c && !ISVISIBLE(c); c = c->next);
return c;
nextvisible(Client *c) {
for(; c && !ISVISIBLE(c); c = c->next);
return c;
@@
-1369,7
+1383,7
@@
resizeclient(Client *c, int x, int y, int w, int h, Client *base) {
c->oldy = c->y; c->y = wc.y = y;
c->oldw = c->w; c->w = wc.width = w;
c->oldh = c->h; c->h = wc.height = h;
c->oldy = c->y; c->y = wc.y = y;
c->oldw = c->w; c->w = wc.width = w;
c->oldh = c->h; c->h = wc.height = h;
- base = 0;
+ // base = 0;
if (base) {
wc.stack_mode = Above;
wc.sibling = base->win;
if (base) {
wc.stack_mode = Above;
wc.sibling = base->win;