Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
removed TODO, because dwm is nearly finished
[dwm.git]
/
client.c
diff --git
a/client.c
b/client.c
index
beb7e35
..
3b6a0e1
100644
(file)
--- a/
client.c
+++ b/
client.c
@@
-25,7
+25,11
@@
resizetitle(Client *c)
c->bw = *c->w + 2;
c->bx = *c->x + *c->w - c->bw + 2;
c->by = *c->y;
c->bw = *c->w + 2;
c->bx = *c->x + *c->w - c->bw + 2;
c->by = *c->y;
- XMoveResizeWindow(dpy, c->title, c->bx, c->by, c->bw, c->bh);
+ if(c->tags[tsel])
+ XMoveResizeWindow(dpy, c->title, c->bx, c->by, c->bw, c->bh);
+ else
+ XMoveResizeWindow(dpy, c->title, c->bx + 2 * sw, c->by, c->bw, c->bh);
+
}
static int
}
static int
@@
-192,6
+196,7
@@
lower(Client *c)
void
manage(Window w, XWindowAttributes *wa)
{
void
manage(Window w, XWindowAttributes *wa)
{
+ int diff;
Client *c;
XSetWindowAttributes twa;
Window trans;
Client *c;
XSetWindowAttributes twa;
Window trans;
@@
-200,11
+205,18
@@
manage(Window w, XWindowAttributes *wa)
c->win = w;
c->bx = c->fx = c->tx = wa->x;
c->by = c->fy = c->ty = wa->y;
c->win = w;
c->bx = c->fx = c->tx = wa->x;
c->by = c->fy = c->ty = wa->y;
- if(c->fy < bh)
- c->by = c->fy = c->ty += bh;
c->bw = c->fw = c->tw = wa->width;
c->fh = c->th = wa->height;
c->bh = bh;
c->bw = c->fw = c->tw = wa->width;
c->fh = c->th = wa->height;
c->bh = bh;
+
+ diff = sw - c->fw;
+ c->fx = random() % (diff ? diff : 1);
+ diff = sh - c->fh - bh;
+ c->fy = random() % (diff ? diff : 1);
+
+ if(c->fy < bh)
+ c->by = c->fy = c->ty = bh;
+
c->border = 1;
c->proto = getproto(c->win);
setsize(c);
c->border = 1;
c->proto = getproto(c->win);
setsize(c);
@@
-250,10
+262,8
@@
manage(Window w, XWindowAttributes *wa)
focus(c);
}
else {
focus(c);
}
else {
- ban(c);
XMapRaised(dpy, c->win);
XMapRaised(dpy, c->title);
XMapRaised(dpy, c->win);
XMapRaised(dpy, c->title);
- XSync(dpy, False);
}
}
}
}
@@
-267,7
+277,7
@@
maximize(Arg *arg)
*sel->w = sw - 2 * sel->border;
*sel->h = sh - 2 * sel->border - bh;
higher(sel);
*sel->w = sw - 2 * sel->border;
*sel->h = sh - 2 * sel->border - bh;
higher(sel);
- resize(sel, False);
+ resize(sel, False
, TopLeft
);
}
void
}
void
@@
-283,9
+293,11
@@
pop(Client *c)
}
void
}
void
-resize(Client *c, Bool inc)
+resize(Client *c, Bool inc
, Corner sticky
)
{
XConfigureEvent e;
{
XConfigureEvent e;
+ int right = *c->x + *c->w;
+ int bottom = *c->y + *c->h;
if(inc) {
if(c->incw)
if(inc) {
if(c->incw)
@@
-305,9
+317,15
@@
resize(Client *c, Bool inc)
*c->w = c->maxw;
if(c->maxh && *c->h > c->maxh)
*c->h = c->maxh;
*c->w = c->maxw;
if(c->maxh && *c->h > c->maxh)
*c->h = c->maxh;
+ if(sticky == TopRight || sticky == BotRight)
+ *c->x = right - *c->w;
+ if(sticky == BotLeft || sticky == BotRight)
+ *c->y = bottom - *c->h;
+
resizetitle(c);
XSetWindowBorderWidth(dpy, c->win, 1);
XMoveResizeWindow(dpy, c->win, *c->x, *c->y, *c->w, *c->h);
resizetitle(c);
XSetWindowBorderWidth(dpy, c->win, 1);
XMoveResizeWindow(dpy, c->win, *c->x, *c->y, *c->w, *c->h);
+
e.type = ConfigureNotify;
e.event = c->win;
e.window = c->win;
e.type = ConfigureNotify;
e.event = c->win;
e.window = c->win;