equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> |
2 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> |
3 * See LICENSE file for license details. |
3 * See LICENSE file for license details. |
4 */ |
4 */ |
5 |
5 |
|
6 #include <errno.h> |
|
7 |
6 #include <stdarg.h> |
8 #include <stdarg.h> |
7 #include <stdio.h> |
9 #include <stdio.h> |
8 #include <stdlib.h> |
10 #include <stdlib.h> |
|
11 |
|
12 #include <sys/types.h> |
|
13 #include <sys/time.h> |
9 |
14 |
10 #include <X11/cursorfont.h> |
15 #include <X11/cursorfont.h> |
11 #include <X11/Xatom.h> |
16 #include <X11/Xatom.h> |
12 #include <X11/Xproto.h> |
17 #include <X11/Xproto.h> |
13 |
18 |
158 } |
163 } |
159 |
164 |
160 static void |
165 static void |
161 cleanup() |
166 cleanup() |
162 { |
167 { |
163 /* |
168 while(clients) |
164 Client *c; |
169 unmanage(clients); |
165 for(c=client; c; c=c->next) |
|
166 reparent_client(c, root, c->sel->rect.x, c->sel->rect.y); |
|
167 XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); |
170 XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); |
168 */ |
|
169 } |
171 } |
170 |
172 |
171 int |
173 int |
172 main(int argc, char *argv[]) |
174 main(int argc, char *argv[]) |
173 { |
175 { |
174 int i; |
176 int i; |
175 XSetWindowAttributes wa; |
177 XSetWindowAttributes wa; |
176 unsigned int mask; |
178 unsigned int mask; |
177 Window w; |
179 Window w; |
178 XEvent ev; |
180 XEvent ev; |
|
181 fd_set fds; |
|
182 struct timeval t, timeout = { |
|
183 .tv_usec = 0, |
|
184 .tv_sec = STATUSDELAY, |
|
185 }; |
179 |
186 |
180 /* command line args */ |
187 /* command line args */ |
181 for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) { |
188 for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) { |
182 switch (argv[i][1]) { |
189 switch (argv[i][1]) { |
183 case 'v': |
190 case 'v': |
262 XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); |
269 XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); |
263 |
270 |
264 scan_wins(); |
271 scan_wins(); |
265 |
272 |
266 while(running) { |
273 while(running) { |
267 XNextEvent(dpy, &ev); |
274 if(XPending(dpy) > 0) { |
268 if(handler[ev.type]) |
275 XNextEvent(dpy, &ev); |
269 (handler[ev.type]) (&ev); /* call handler */ |
276 if(handler[ev.type]) |
|
277 (handler[ev.type]) (&ev); /* call handler */ |
|
278 continue; |
|
279 } |
|
280 FD_ZERO(&fds); |
|
281 FD_SET(ConnectionNumber(dpy), &fds); |
|
282 t = timeout; |
|
283 if(select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &t) > 0) |
|
284 continue; |
|
285 else if(errno != EINTR) |
|
286 draw_bar(); |
270 } |
287 } |
271 |
288 |
272 cleanup(); |
289 cleanup(); |
273 XCloseDisplay(dpy); |
290 XCloseDisplay(dpy); |
274 |
291 |