Introduction
Introduction Statistics Contact Development Disclaimer Help
tremoved Geom stuff, introduced updategeom() again, still view is somewhat brok…
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit 7eb26288fc6aa4c8850f41d475230b1619df622b
parent 93a4fe1052e1271f7b4f519b4f2de4e3f4e15edc
Author: Anselm R Garbe <[email protected]>
Date: Sun, 11 May 2008 20:20:53 +0100
removed Geom stuff, introduced updategeom() again, still view is somewhat broke…
Diffstat:
M config.def.h | 12 +-----------
M dwm.1 | 3 ---
M dwm.c | 122 +++++++++++++----------------…
3 files changed, 52 insertions(+), 85 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -18,17 +18,8 @@ Rule rules[] = {
{ "Gimp", NULL, NULL, NULL, …
};
-/* geometries, s{x,y,w,h} and bh are already initualized here */
-/* func name bx by bw wx wy ww wh mx my mw mh tx ty …
-#define MFACT 0.55 /* master width factor [0.1 .…
-DEFGEOM(single, 0, 0, sw, 0, bh, sw, sh-bh, wx, wy, mfact*ww, wh, mx+mw, wy…
-
-Geom geoms[] = {
- /* symbol function */
- { "[]", single }, /* first entry is default */
-};
-
/* layout(s) */
+#define MFACT 0.55 /* master width factor [0.1 .…
#define RESIZEHINTS True /* False - respect size hints i…
#define SNAP 32 /* snap pixel */
t@@ -58,7 +49,6 @@ Key keys[] = {
{ MODKEY|ShiftMask, XK_c, killclient, …
{ MODKEY, XK_space, setlayout, NU…
{ MODKEY|ShiftMask, XK_space, togglefloating, …
- { MODKEY|ControlMask, XK_space, setgeom, …
{ MODKEY, XK_0, view, …
{ MODKEY, XK_1, view, …
{ MODKEY, XK_2, view, …
diff --git a/dwm.1 b/dwm.1
t@@ -60,9 +60,6 @@ Start
.B Mod1\-space
Toggles between layouts.
.TP
-.B Mod1\-Control\-space
-Toggles between geometries.
-.TP
.B Mod1\-j
Focus next window.
.TP
diff --git a/dwm.c b/dwm.c
t@@ -41,21 +41,13 @@
#include <X11/Xutil.h>
/* macros */
-#define MAX(a, b) ((a)>(b)?(a):(b))
-#define MIN(a, b) ((a)<(b)?(a):(b))
-#define BUTTONMASK (ButtonPressMask|ButtonReleaseMask)
-#define CLEANMASK(mask) (mask & ~(numlockmask|LockMask))
-#define LENGTH(x) (sizeof x / sizeof x[0])
-#define MAXTAGLEN 16
-#define MOUSEMASK (BUTTONMASK|PointerMotionMask)
-#define DEFGEOM(GEONAME,BX,BY,BW,WX,WY,WW,WH,MX,MY,MW,MH,TX,TY,TW,TH,MOX,MOY,M…
-void GEONAME(void) { \
- bx = (BX); by = (BY); bw = (BW); \
- wx = (WX); wy = (WY); ww = (WW); wh = (WH); \
- mx = (MX); my = (MY); mw = (MW); mh = (MH); \
- tx = (TX); ty = (TY); tw = (TW); th = (TH); \
- mox = (MOX); moy = (MOY); mow = (MOW); moh = (MOH); \
-}
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#define BUTTONMASK (ButtonPressMask|ButtonReleaseMask)
+#define CLEANMASK(mask) (mask & ~(numlockmask|LockMask))
+#define LENGTH(x) (sizeof x / sizeof x[0])
+#define MAXTAGLEN 16
+#define MOUSEMASK (BUTTONMASK|PointerMotionMask)
/* enums */
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
t@@ -97,11 +89,6 @@ typedef struct {
} DC; /* draw context */
typedef struct {
- const char *symbol;
- void (*apply)(void);
-} Geom;
-
-typedef struct {
unsigned long mod;
KeySym keysym;
void (*func)(const char *arg);
t@@ -178,7 +165,6 @@ void restack(void);
void run(void);
void scan(void);
void setclientstate(Client *c, long state);
-void setgeom(const char *arg);
void setlayout(const char *arg);
void setmfact(const char *arg);
void setup(void);
t@@ -198,7 +184,8 @@ void toggleview(const char *arg);
void unban(Client *c);
void unmanage(Client *c);
void unmapnotify(XEvent *e);
-void updatebarpos(void);
+void updatebar(void);
+void updategeom(void);
void updatesizehints(Client *c);
void updatetitle(Client *c);
void updatewmhints(Client *c);
t@@ -213,7 +200,7 @@ void zoom(const char *arg);
char stext[256];
int screen, sx, sy, sw, sh;
int (*xerrorxlib)(Display *, XErrorEvent *);
-int bx, by, bw, bh, blw, bgw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, …
+int bx, by, bw, bh, blw, mx, my, mw, mh, tx, ty, tw, th, wx, wy, ww, wh;
int seltags = 0;
double mfact;
unsigned int numlockmask = 0;
t@@ -241,8 +228,6 @@ Client *stack = NULL;
Cursor cursor[CurLast];
Display *dpy;
DC dc = {0};
-Geom geoms[];
-Geom *geom = geoms;
Layout layouts[];
Layout *lt = layouts;
Window root, barwin;
t@@ -330,14 +315,10 @@ buttonpress(XEvent *e) {
XButtonPressedEvent *ev = &e->xbutton;
if(ev->window == barwin) {
- if((ev->x < bgw) && ev->button == Button1) {
- setgeom(NULL);
- return;
- }
- x = bgw;
+ x = 0;
for(i = 0; i < LENGTH(tags); i++) {
x += textw(tags[i]);
- if(ev->x >= bgw && ev->x < x) {
+ if(ev->x < x) {
if(ev->button == Button1) {
if(ev->state & MODKEY)
tag(tags[i]);
t@@ -440,7 +421,9 @@ configurenotify(XEvent *e) {
if(ev->window == root && (ev->width != sw || ev->height != sh)) {
sw = ev->width;
sh = ev->height;
- setgeom(geom->symbol);
+ updategeom();
+ updatebar();
+ arrange();
}
}
t@@ -531,11 +514,6 @@ drawbar(void) {
Client *c;
dc.x = 0;
- if(bgw > 0) {
- dc.w = bgw;
- drawtext(geom->symbol, dc.norm, False);
- dc.x += bgw;
- }
for(c = stack; c && !isvisible(c, NULL); c = c->snext);
for(i = 0; i < LENGTH(tags); i++) {
dc.w = textw(tags[i]);
t@@ -1064,7 +1042,7 @@ monocle(void) {
for(c = clients; c; c = c->next)
if((lt->isfloating || !c->isfloating) && isvisible(c, NULL))
- resize(c, mox, moy, mow - 2 * c->bw, moh - 2 * c->bw, …
+ resize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw, RESI…
}
void
t@@ -1399,27 +1377,6 @@ setclientstate(Client *c, long state) {
}
void
-setgeom(const char *arg) {
- unsigned int i;
-
- if(!arg) {
- if(++geom == &geoms[LENGTH(geoms)])
- geom = &geoms[0];
- }
- else {
- for(i = 0; i < LENGTH(geoms); i++)
- if(!strcmp(geoms[i].symbol, arg))
- break;
- if(i == LENGTH(geoms))
- return;
- geom = &geoms[i];
- }
- geom->apply();
- updatebarpos();
- arrange();
-}
-
-void
setlayout(const char *arg) {
unsigned int i;
t@@ -1457,7 +1414,8 @@ setmfact(const char *arg) {
return;
mfact = d;
}
- setgeom(geom->symbol);
+ updategeom();
+ arrange();
}
void
t@@ -1469,15 +1427,14 @@ setup(void) {
screen = DefaultScreen(dpy);
root = RootWindow(dpy, screen);
initfont(FONT);
-
- /* apply default geometry */
sx = 0;
sy = 0;
sw = DisplayWidth(dpy, screen);
sh = DisplayHeight(dpy, screen);
bh = dc.font.height + 2;
- mfact = MFACT;
- geom->apply();
+
+ /* update geometry */
+ updategeom();
/* init atoms */
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
t@@ -1517,10 +1474,6 @@ setup(void) {
w = textw(layouts[i].symbol);
blw = MAX(blw, w);
}
- for(bgw = i = 0; LENGTH(geoms) > 1 && i < LENGTH(geoms); i++) {
- w = textw(geoms[i].symbol);
- bgw = MAX(bgw, w);
- }
wa.override_redirect = 1;
wa.background_pixmap = ParentRelative;
t@@ -1633,7 +1586,7 @@ tilemaster(unsigned int n) {
Client *c = nexttiled(clients);
if(n == 1)
- tileresize(c, mox, moy, mow - 2 * c->bw, moh - 2 * c->bw);
+ tileresize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw);
else
tileresize(c, mx, my, mw - 2 * c->bw, mh - 2 * c->bw);
return c;
t@@ -1751,7 +1704,7 @@ unmapnotify(XEvent *e) {
}
void
-updatebarpos(void) {
+updatebar(void) {
if(dc.drawable != 0)
XFreePixmap(dpy, dc.drawable);
t@@ -1760,6 +1713,34 @@ updatebarpos(void) {
}
void
+updategeom(void) {
+
+ /* bar geometry */
+ bx = 0;
+ by = 0;
+ bw = sw;
+
+ /* window area geometry */
+ wx = sx;
+ wy = sy;
+ ww = sw;
+ sh = sh - bh;
+
+ /* master area geometry */
+ mfact = MFACT;
+ mx = wx;
+ my = wy;
+ mw = mfact * ww;
+ mh = wh;
+
+ /* tile area geometry */
+ tx = mx + mw;
+ ty = wy;
+ tw = ww - mw;
+ th = wh;
+}
+
+void
updatesizehints(Client *c) {
long msize;
XSizeHints size;
t@@ -1912,4 +1893,3 @@ main(int argc, char *argv[]) {
XCloseDisplay(dpy);
return 0;
}
-
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.