Introduction
Introduction Statistics Contact Development Disclaimer Help
tseveral changes towards 5.3, XINERAMA is disabled by default, introduced usegr…
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit ea8a4ca46a9577997e0a3f30e211c644477c6a00
parent 4883a062216fa7fca0d4b6250478cf53ce1210f0
Author: Anselm R Garbe <[email protected]>
Date: Sun, 19 Oct 2008 12:59:18 +0100
several changes towards 5.3, XINERAMA is disabled by default, introduced usegra…
Diffstat:
M config.def.h | 2 ++
M config.mk | 8 ++++----
M dwm.c | 28 ++++++++++++++++++++--------
3 files changed, 26 insertions(+), 12 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -13,6 +13,8 @@ static unsigned int snap = 32; /* snap pixe…
static Bool showbar = True; /* False means no bar */
static Bool topbar = True; /* False means bottom bar */
static Bool readin = True; /* False means do not read std…
+static Bool usegrab = False; /* True means grabbing the X s…
+ during mouse-based resizals…
/* tagging */
static const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8"…
diff --git a/config.mk b/config.mk
t@@ -1,5 +1,5 @@
# dwm version
-VERSION = 5.2
+VERSION = 5.3
# Customize below to fit your system
t@@ -10,9 +10,9 @@ MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
-# Xinerama, comment if you don't want it
-XINERAMALIBS = -L${X11LIB} -lXinerama
-XINERAMAFLAGS = -DXINERAMA
+# Xinerama, un-comment if you want it
+#XINERAMALIBS = -L${X11LIB} -lXinerama
+#XINERAMAFLAGS = -DXINERAMA
# includes and libs
INCS = -I. -I/usr/include -I${X11INC}
diff --git a/dwm.c b/dwm.c
t@@ -53,8 +53,8 @@
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAXTAGLEN 16
#define MOUSEMASK (BUTTONMASK|PointerMotionMask)
-#define WIDTH(x) ((x)->w + 2*(x)->bw)
-#define HEIGHT(x) ((x)->h + 2*(x)->bw)
+#define WIDTH(x) ((x)->w + 2 * (x)->bw)
+#define HEIGHT(x) ((x)->h + 2 * (x)->bw)
#define TAGMASK ((int)((1LL << LENGTH(tags)) - 1))
#define TEXTW(x) (textnw(x, strlen(x)) + dc.font.height)
t@@ -932,7 +932,7 @@ monocle(void) {
Client *c;
for(c = nexttiled(clients); c; c = nexttiled(c->next))
- resize(c, wx, wy, ww - 2*c->bw, wh - 2*c->bw, resizehints);
+ resize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw, resizehints);
}
void
t@@ -952,6 +952,8 @@ movemouse(const Arg *arg) {
None, cursor[CurMove], CurrentTime) != GrabSuccess)
return;
XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui);
+ if(usegrab)
+ XGrabServer(dpy);
do {
XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMas…
switch (ev.type) {
t@@ -961,7 +963,6 @@ movemouse(const Arg *arg) {
handler[ev.type](&ev);
break;
case MotionNotify:
- XSync(dpy, False);
nx = ocx + (ev.xmotion.x - x);
ny = ocy + (ev.xmotion.y - y);
if(snap && nx >= wx && nx <= wx + ww
t@@ -983,6 +984,8 @@ movemouse(const Arg *arg) {
}
}
while(ev.type != ButtonRelease);
+ if(usegrab)
+ XUngrabServer(dpy);
XUngrabPointer(dpy, CurrentTime);
}
t@@ -1121,6 +1124,8 @@ resizemouse(const Arg *arg) {
None, cursor[CurResize], CurrentTime) != GrabSuccess)
return;
XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c…
+ if(usegrab)
+ XGrabServer(dpy);
do {
XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMas…
switch(ev.type) {
t@@ -1130,7 +1135,6 @@ resizemouse(const Arg *arg) {
handler[ev.type](&ev);
break;
case MotionNotify:
- XSync(dpy, False);
nw = MAX(ev.xmotion.x - ocx - 2*c->bw + 1, 1);
nh = MAX(ev.xmotion.y - ocy - 2*c->bw + 1, 1);
t@@ -1146,6 +1150,8 @@ resizemouse(const Arg *arg) {
}
}
while(ev.type != ButtonRelease);
+ if(usegrab)
+ XUngrabServer(dpy);
XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c…
XUngrabPointer(dpy, CurrentTime);
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
t@@ -1435,7 +1441,7 @@ tile(void) {
/* master */
c = nexttiled(clients);
mw = mfact * ww;
- resize(c, wx, wy, (n == 1 ? ww : mw) - 2*c->bw, wh - 2*c->bw, resizehi…
+ resize(c, wx, wy, (n == 1 ? ww : mw) - 2 * c->bw, wh - 2 * c->bw, resi…
if(--n == 0)
return;
t@@ -1449,8 +1455,14 @@ tile(void) {
h = wh;
for(i = 0, c = nexttiled(c->next); c; c = nexttiled(c->next), i++) {
- resize(c, x, y, w - 2*c->bw, /* remainder */ ((i + 1 == n)
- ? wy + wh - y : h) - 2*c->bw, resizehints);
+ if(i + 1 == n) { /* remainder */
+ if(wy + wh - y < bh)
+ resize(c, x, y, w - 2 * c->bw, wy + wh - y - 2…
+ else
+ resize(c, x, y, w - 2 * c->bw, wy + wh - y - 2…
+ }
+ else
+ resize(c, x, y, w - 2 * c->bw, h - 2 * c->bw, resizehi…
if(h != wh)
y = c->y + HEIGHT(c);
}
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.