Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Jukka also belongs to Copyright holders after all he has contributed and done for...
[dwm.git]
/
client.c
diff --git
a/client.c
b/client.c
index
64da343
..
3be154b
100644
(file)
--- a/
client.c
+++ b/
client.c
@@
-1,5
+1,8
@@
/* © 2006-2007 Anselm R. Garbe <garbeam at gmail dot com>
* © 2006-2007 Sander van Dijk <a dot h dot vandijk at gmail dot com>
/* © 2006-2007 Anselm R. Garbe <garbeam at gmail dot com>
* © 2006-2007 Sander van Dijk <a dot h dot vandijk at gmail dot com>
+ * © 2006-2007 Jukka Salmi <jukka at salmi dot ch>
+ * © 2007 Premysl Hruby <dfenze at gmail dot com>
+ * © 2007 Szabolcs Nagy <nszabolcs at gmail dot com>
* See LICENSE file for license details. */
#include "dwm.h"
#include <stdlib.h>
* See LICENSE file for license details. */
#include "dwm.h"
#include <stdlib.h>
@@
-129,8
+132,8
@@
detach(Client *c) {
void
focus(Client *c) {
void
focus(Client *c) {
- if(
c && !isvisible(c
))
-
return
;
+ if(
(!c && selscreen)|| (c && !isvisible(c)
))
+
for(c = stack; c && !isvisible(c); c = c->snext)
;
if(sel && sel != c) {
grabbuttons(sel, False);
XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
if(sel && sel != c) {
grabbuttons(sel, False);
XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
@@
-222,8
+225,7
@@
manage(Window w, XWindowAttributes *wa) {
XMoveWindow(dpy, w, c->x + 2 * sw, c->y);
XMapWindow(dpy, w);
setclientstate(c, NormalState);
XMoveWindow(dpy, w, c->x + 2 * sw, c->y);
XMapWindow(dpy, w);
setclientstate(c, NormalState);
- if(isvisible(c))
- focus(c);
+ focus(c);
lt->arrange();
}
lt->arrange();
}
@@
-297,6
+299,8
@@
togglefloating(const char *arg) {
if(!sel || lt->arrange == floating)
return;
sel->isfloating = !sel->isfloating;
if(!sel || lt->arrange == floating)
return;
sel->isfloating = !sel->isfloating;
+ if(sel->isfloating)
+ resize(sel, sel->x, sel->y, sel->w, sel->h, True);
lt->arrange();
}
lt->arrange();
}
@@
-365,9
+369,8
@@
updatetitle(Client *c) {
XGetWMName(dpy, c->win, &name);
if(!name.nitems)
return;
XGetWMName(dpy, c->win, &name);
if(!name.nitems)
return;
- if(name.encoding == XA_STRING)
{
+ if(name.encoding == XA_STRING)
strncpy(c->name, (char *)name.value, sizeof c->name - 1);
strncpy(c->name, (char *)name.value, sizeof c->name - 1);
- }
else {
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
&& n > 0 && *list)
else {
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
&& n > 0 && *list)
@@
-382,7
+385,6
@@
updatetitle(Client *c) {
void
unmanage(Client *c) {
void
unmanage(Client *c) {
- Client *nc;
XWindowChanges wc;
wc.border_width = c->oldborder;
XWindowChanges wc;
wc.border_width = c->oldborder;
@@
-392,10
+394,8
@@
unmanage(Client *c) {
XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */
detach(c);
detachstack(c);
XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */
detach(c);
detachstack(c);
- if(sel == c) {
- for(nc = stack; nc && !isvisible(nc); nc = nc->snext);
- focus(nc);
- }
+ if(sel == c)
+ focus(NULL);
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
setclientstate(c, WithdrawnState);
free(c->tags);
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
setclientstate(c, WithdrawnState);
free(c->tags);