about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAnselm R. Garbe <arg@suckless.org>2007-02-19 15:05:29 +0100
committerAnselm R. Garbe <arg@suckless.org>2007-02-19 15:05:29 +0100
commit238dd5d2b15b8bdc0f05d5be7f86a1ca03d2920b (patch)
tree8f08ae0a2fe2a6e40aa0a263f6d19ada4291215b
parent64871a7045077bb2ec4cbcd62a74cabbe6b45096 (diff)
downloaddwm-238dd5d2b15b8bdc0f05d5be7f86a1ca03d2920b.tar.gz
renamed view.c into screen.c
-rw-r--r--Makefile2
-rw-r--r--client.c73
-rw-r--r--dwm.h10
-rw-r--r--screen.c (renamed from view.c)51
4 files changed, 67 insertions, 69 deletions
diff --git a/Makefile b/Makefile
index 31ae1c1..a9f129d 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
 
 include config.mk
 
-SRC = client.c draw.c event.c main.c manage.c util.c
+SRC = client.c draw.c event.c main.c screen.c util.c
 OBJ = ${SRC:.c=.o}
 
 all: options dwm
diff --git a/client.c b/client.c
index 45f2d19..eaf4a10 100644
--- a/client.c
+++ b/client.c
@@ -10,6 +10,19 @@
 /* static */
 
 static void
+attachstack(Client *c) {
+	c->snext = stack;
+	stack = c;
+}
+
+static void
+detachstack(Client *c) {
+	Client **tc;
+	for(tc=&stack; *tc && *tc != c; tc=&(*tc)->snext);
+	*tc = c->snext;
+}
+
+static void
 grabbuttons(Client *c, Bool focused) {
 	XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
 
@@ -68,6 +81,24 @@ setclientstate(Client *c, long state) {
 			PropModeReplace, (unsigned char *)data, 2);
 }
 
+static void
+togglemax(Client *c) {
+	XEvent ev;
+
+	if(c->isfixed)
+		return;
+	if((c->ismax = !c->ismax)) {
+		c->rx = c->x;
+		c->ry = c->y;
+		c->rw = c->w;
+		c->rh = c->h;
+		resize(c, wax, way, waw - 2 * BORDERPX, wah - 2 * BORDERPX, True);
+	}
+	else
+		resize(c, c->rx, c->ry, c->rw, c->rh, True);
+	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
+}
+
 static int
 xerrordummy(Display *dsply, XErrorEvent *ee) {
 	return 0;
@@ -84,12 +115,6 @@ attach(Client *c) {
 }
 
 void
-attachstack(Client *c) {
-	c->snext = stack;
-	stack = c;
-}
-
-void
 configure(Client *c) {
 	XConfigureEvent ce;
 
@@ -119,13 +144,6 @@ detach(Client *c) {
 }
 
 void
-detachstack(Client *c) {
-	Client **tc;
-	for(tc=&stack; *tc && *tc != c; tc=&(*tc)->snext);
-	*tc = c->snext;
-}
-
-void
 focus(Client *c) {
 	if(c && !isvisible(c))
 		return;
@@ -256,6 +274,12 @@ manage(Window w, XWindowAttributes *wa) {
 	arrange();
 }
 
+Client *
+nexttiled(Client *c) {
+	for(; c && (c->isfloat || !isvisible(c)); c = c->next);
+	return c;
+}
+
 void
 resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
 	float actual, dx, dy, max, min;
@@ -416,3 +440,26 @@ unmanage(Client *c) {
 	XUngrabServer(dpy);
 	arrange();
 }
+
+void
+zoom(Arg *arg) {
+	unsigned int n;
+	Client *c;
+
+	if(!sel)
+		return;
+	if(sel->isfloat || (arrange == dofloat)) {
+		togglemax(sel);
+		return;
+	}
+	for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
+		n++;
+
+	if((c = sel) == nexttiled(clients))
+		if(!(c = nexttiled(c->next)))
+			return;
+	detach(c);
+	attach(c);
+	focus(c);
+	arrange();
+}
diff --git a/dwm.h b/dwm.h
index cca9984..57fab91 100644
--- a/dwm.h
+++ b/dwm.h
@@ -99,22 +99,20 @@ extern Display *dpy;
 extern Window root, barwin;
 
 /* client.c */
-extern void attach(Client *c);			/* attaches c to global client list */
-extern void attachstack(Client *c);		/* attaches client to stack */
 extern void configure(Client *c);		/* send synthetic configure event */
-extern void detach(Client *c);			/* detaches c from global client list */
-extern void detachstack(Client *c);		/* detaches client from stack */
 extern void focus(Client *c);			/* focus c, c may be NULL */
 extern void focusnext(Arg *arg);		/* focuses next visible client, arg is ignored  */
 extern void focusprev(Arg *arg);		/* focuses previous visible client, arg is ignored */
 extern Client *getclient(Window w);		/* return client of w */
 extern void killclient(Arg *arg);		/* kill c nicely */
 extern void manage(Window w, XWindowAttributes *wa);	/* manage new client */
+Client *nexttiled(Client *c);			/* returns tiled successor of c */
 extern void resize(Client *c, int x, int y,
 		int w, int h, Bool sizehints);	/* resize c*/
 extern void updatesizehints(Client *c);		/* update the size hint variables of c */
 extern void updatetitle(Client *c);		/* update the name of c */
 extern void unmanage(Client *c);		/* destroy c */
+extern void zoom(Arg *arg);			/* zooms the focused client to master area, arg is ignored */
 
 /* draw.c */
 extern void drawstatus(void);			/* draw the bar */
@@ -131,7 +129,7 @@ extern void quit(Arg *arg);			/* quit dwm nicely */
 extern void sendevent(Window w, Atom a, long value);	/* send synthetic event to w */
 extern int xerror(Display *dsply, XErrorEvent *ee);	/* dwm's X error handler */
 
-/* manage.c */
+/* screen.c */
 extern void compileregexps(void);		/* initialize regexps of rules defined in config.h */
 extern void dofloat(void);			/* arranges all windows floating */
 extern void dotile(void);			/* arranges all windows tiled */
@@ -146,9 +144,9 @@ extern void togglemode(Arg *arg);		/* toggles global arrange function (dotile/do
 extern void toggletag(Arg *arg);		/* toggles c tags with arg's index */
 extern void toggleview(Arg *arg);		/* toggles the tag with arg's index (in)visible */
 extern void view(Arg *arg);			/* views the tag with arg's index */
-extern void zoom(Arg *arg);			/* zooms the focused client to master area, arg is ignored */
 
 /* util.c */
 extern void *emallocz(unsigned int size);	/* allocates zero-initialized memory, exits on error */
 extern void eprint(const char *errstr, ...);	/* prints errstr and exits with 1 */
 extern void spawn(Arg *arg);			/* forks a new subprocess with to arg's cmd */
+
diff --git a/view.c b/screen.c
index 34aae58..041cac7 100644
--- a/view.c
+++ b/screen.c
@@ -32,30 +32,6 @@ RULES
 static Regexps *regexps = NULL;
 static unsigned int len = 0;
 
-static Client *
-nextmanaged(Client *c) {
-	for(; c && (c->isfloat || !isvisible(c)); c = c->next);
-	return c;
-}
-
-static void
-togglemax(Client *c) {
-	XEvent ev;
-
-	if(c->isfixed)
-		return;
-	if((c->ismax = !c->ismax)) {
-		c->rx = c->x;
-		c->ry = c->y;
-		c->rw = c->w;
-		c->rh = c->h;
-		resize(c, wax, way, waw - 2 * BORDERPX, wah - 2 * BORDERPX, True);
-	}
-	else
-		resize(c, c->rx, c->ry, c->rw, c->rh, True);
-	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
-}
-
 /* extern */
 
 void
@@ -112,7 +88,7 @@ dotile(void) {
 	unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th;
 	Client *c;
 
-	for(n = 0, c = nextmanaged(clients); c; c = nextmanaged(c->next))
+	for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
 		n++;
 	/* window geoms */
 	mh = (n > nmaster) ? wah / nmaster : wah / (n > 0 ? n : 1);
@@ -209,7 +185,7 @@ restack(void) {
 	if(arrange != dofloat) {
 		if(!sel->isfloat)
 			XLowerWindow(dpy, sel->win);
-		for(c = nextmanaged(clients); c; c = nextmanaged(c->next)) {
+		for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
 			if(c == sel)
 				continue;
 			XLowerWindow(dpy, c->win);
@@ -319,26 +295,3 @@ view(Arg *arg) {
 		seltag[arg->i] = True;
 	arrange();
 }
-
-void
-zoom(Arg *arg) {
-	unsigned int n;
-	Client *c;
-
-	if(!sel)
-		return;
-	if(sel->isfloat || (arrange == dofloat)) {
-		togglemax(sel);
-		return;
-	}
-	for(n = 0, c = nextmanaged(clients); c; c = nextmanaged(c->next))
-		n++;
-
-	if((c = sel) == nextmanaged(clients))
-		if(!(c = nextmanaged(c->next)))
-			return;
-	detach(c);
-	attach(c);
-	focus(c);
-	arrange();
-}
roject "lynx", label v2-7-1ac_0-6' href='/ingrix/lynx-snapshots/commit/src/chrtrans/cp437_uni.tbl?id=e4409c408eedf320b8845cafdd62b664bec1afd8'>e4409c40 ^
2d161b7d ^


e4409c40 ^


2d161b7d ^


e4409c40 ^





b63d287c ^
e4409c40 ^
e4409c40 ^


2d161b7d ^







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181