Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Added tag 4.5 for changeset 2acc60d6dfe2
[dwm.git]
/
dwm.c
diff --git
a/dwm.c
b/dwm.c
index
726e797
..
f28cdf8
100644
(file)
--- a/
dwm.c
+++ b/
dwm.c
@@
-64,7
+64,7
@@
struct Client {
int minax, maxax, minay, maxay;
long flags;
unsigned int border, oldborder;
int minax, maxax, minay, maxay;
long flags;
unsigned int border, oldborder;
- Bool isbanned, isfixed, ismax, isfloating;
+ Bool isbanned, isfixed, ismax, isfloating
, wasfloating
;
Bool *tags;
Client *next;
Client *prev;
Bool *tags;
Client *next;
Client *prev;
@@
-334,10
+334,10
@@
buttonpress(XEvent *e) {
if(CLEANMASK(ev->state) != MODKEY)
return;
if(ev->button == Button1) {
if(CLEANMASK(ev->state) != MODKEY)
return;
if(ev->button == Button1) {
- if(!isarrange(floating) && !c->isfloating)
- togglefloating(NULL);
- else
+ if(isarrange(floating) || c->isfloating)
restack();
restack();
+ else
+ togglefloating(NULL);
movemouse(c);
}
else if(ev->button == Button2) {
movemouse(c);
}
else if(ev->button == Button2) {
@@
-347,10
+347,10
@@
buttonpress(XEvent *e) {
zoom(NULL);
}
else if(ev->button == Button3 && !c->isfixed) {
zoom(NULL);
}
else if(ev->button == Button3 && !c->isfixed) {
- if(!isarrange(floating) && !c->isfloating)
- togglefloating(NULL);
- else
+ if(isarrange(floating) || c->isfloating)
restack();
restack();
+ else
+ togglefloating(NULL);
resizemouse(c);
}
}
resizemouse(c);
}
}
@@
-444,7
+444,7
@@
void
configurenotify(XEvent *e) {
XConfigureEvent *ev = &e->xconfigure;
configurenotify(XEvent *e) {
XConfigureEvent *ev = &e->xconfigure;
- if
(ev->window == root && (ev->width != sw || ev->height != sh)) {
+ if(ev->window == root && (ev->width != sw || ev->height != sh)) {
sw = ev->width;
sh = ev->height;
XFreePixmap(dpy, dc.drawable);
sw = ev->width;
sh = ev->height;
XFreePixmap(dpy, dc.drawable);
@@
-883,7
+883,7
@@
initfont(const char *fontstr) {
XFreeFont(dpy, dc.font.xfont);
dc.font.xfont = NULL;
if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
XFreeFont(dpy, dc.font.xfont);
dc.font.xfont = NULL;
if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
-
||
!(dc.font.xfont = XLoadQueryFont(dpy, "fixed")))
+
&&
!(dc.font.xfont = XLoadQueryFont(dpy, "fixed")))
eprint("error, cannot load font: '%s'\n", fontstr);
dc.font.ascent = dc.font.xfont->ascent;
dc.font.descent = dc.font.xfont->descent;
eprint("error, cannot load font: '%s'\n", fontstr);
dc.font.ascent = dc.font.xfont->ascent;
dc.font.descent = dc.font.xfont->descent;
@@
-1404,10
+1404,10
@@
setmwfact(const char *arg) {
if(arg == NULL)
mwfact = MWFACT;
else if(1 == sscanf(arg, "%lf", &delta)) {
if(arg == NULL)
mwfact = MWFACT;
else if(1 == sscanf(arg, "%lf", &delta)) {
- if(arg[0] != '+' && arg[0] != '-')
- mwfact = delta;
- else
+ if(arg[0] == '+' || arg[0] == '-')
mwfact += delta;
mwfact += delta;
+ else
+ mwfact = delta;
if(mwfact < 0.1)
mwfact = 0.1;
else if(mwfact > 0.9)
if(mwfact < 0.1)
mwfact = 0.1;
else if(mwfact > 0.9)
@@
-1418,6
+1418,7
@@
setmwfact(const char *arg) {
void
setup(void) {
void
setup(void) {
+ int d;
unsigned int i, j, mask;
Window w;
XModifierKeymap *modmap;
unsigned int i, j, mask;
Window w;
XModifierKeymap *modmap;
@@
-1507,7
+1508,7
@@
setup(void) {
XSetFont(dpy, dc.gc, dc.font.xfont->fid);
/* multihead support */
XSetFont(dpy, dc.gc, dc.font.xfont->fid);
/* multihead support */
- selscreen = XQueryPointer(dpy, root, &w, &w, &
i, &i, &i, &i
, &mask);
+ selscreen = XQueryPointer(dpy, root, &w, &w, &
d, &d, &d, &d
, &mask);
}
void
}
void
@@
-1627,17
+1628,26
@@
void
togglemax(const char *arg) {
XEvent ev;
togglemax(const char *arg) {
XEvent ev;
- if(!sel ||
(!isarrange(floating) && !sel->isfloating) ||
sel->isfixed)
+ if(!sel || sel->isfixed)
return;
if((sel->ismax = !sel->ismax)) {
return;
if((sel->ismax = !sel->ismax)) {
+ if(isarrange(floating) || sel->isfloating)
+ sel->wasfloating = True;
+ else {
+ togglefloating(NULL);
+ sel->wasfloating = False;
+ }
sel->rx = sel->x;
sel->ry = sel->y;
sel->rw = sel->w;
sel->rh = sel->h;
resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True);
}
sel->rx = sel->x;
sel->ry = sel->y;
sel->rw = sel->w;
sel->rh = sel->h;
resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True);
}
- else
+ else
{
resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);
resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);
+ if(!sel->wasfloating)
+ togglefloating(NULL);
+ }
drawbar();
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
}
drawbar();
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
}
@@
-1664,7
+1674,7
@@
toggleview(const char *arg) {
seltags[i] = !seltags[i];
for(j = 0; j < ntags && !seltags[j]; j++);
if(j == ntags)
seltags[i] = !seltags[i];
for(j = 0; j < ntags && !seltags[j]; j++);
if(j == ntags)
- seltags[i] = True; /*
cannot toggle last view
*/
+ seltags[i] = True; /*
at least one tag must be viewed
*/
arrange();
}
arrange();
}