Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
dwm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactored Sanders code somewhat
[dwm.git]
/
client.c
diff --git
a/client.c
b/client.c
index
beb7e35
..
b1328d4
100644
(file)
--- a/
client.c
+++ b/
client.c
@@
-192,6
+192,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
+201,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);
@@
-267,7
+275,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
+291,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,6
+315,10
@@
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);