Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
implemened distinguishing float/managed geometries of clients (works quite well)
[dwm.git]
/
main.c
diff --git
a/main.c
b/main.c
index
935d860
..
e8577fe
100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-14,26
+14,12
@@
#include <X11/Xatom.h>
#include <X11/Xproto.h>
#include <X11/Xatom.h>
#include <X11/Xproto.h>
-Display *dpy;
-Window root, barwin;
-Atom wmatom[WMLast], netatom[NetLast];
-Cursor cursor[CurLast];
-Bool running = True;
-Bool issel = True;
-
-int tsel = Tdev; /* default tag */
-int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
-char stext[1024];
-DC dc = {0};
-Client *clients = NULL;
-Client *sel = NULL;
+/* static */
static Bool otherwm;
static int (*xerrorxlib)(Display *, XErrorEvent *);
static Bool otherwm;
static int (*xerrorxlib)(Display *, XErrorEvent *);
-/* static functions */
-
static void
cleanup()
{
static void
cleanup()
{
@@
-97,7
+83,20
@@
xerrorstart(Display *dsply, XErrorEvent *ee)
return -1;
}
return -1;
}
-/* extern functions */
+/* extern */
+
+char stext[1024];
+int tsel = Tdev; /* default tag */
+int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
+Atom wmatom[WMLast], netatom[NetLast];
+Bool running = True;
+Bool issel = True;
+Client *clients = NULL;
+Client *sel = NULL;
+Cursor cursor[CurLast];
+Display *dpy;
+DC dc = {0};
+Window root, barwin;
int
getproto(Window w)
int
getproto(Window w)
@@
-131,7
+130,7
@@
sendevent(Window w, Atom a, long value)
e.xclient.data.l[0] = value;
e.xclient.data.l[1] = CurrentTime;
XSendEvent(dpy, w, False, NoEventMask, &e);
e.xclient.data.l[0] = value;
e.xclient.data.l[1] = CurrentTime;
XSendEvent(dpy, w, False, NoEventMask, &e);
- X
Flush(dpy
);
+ X
Sync(dpy, False
);
}
void
}
void
@@
-141,10
+140,9
@@
quit(Arg *arg)
}
/*
}
/*
- * There's no way to check accesses to destroyed windows, thus
- * those cases are ignored (especially on UnmapNotify's).
- * Other types of errors call Xlib's default error handler, which
- * calls exit().
+ * There's no way to check accesses to destroyed windows, thus those cases are
+ * ignored (especially on UnmapNotify's). Other types of errors call Xlibs
+ * default error handler, which calls exit().
*/
int
xerror(Display *dpy, XErrorEvent *ee)
*/
int
xerror(Display *dpy, XErrorEvent *ee)
@@
-181,14
+179,13
@@
main(int argc, char *argv[])
for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
switch (argv[i][1]) {
for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
switch (argv[i][1]) {
- case 'v':
- fprintf(stdout, "%s",
- "dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n");
- exit(0);
- break;
default:
eprint("usage: dwm [-v]\n");
break;
default:
eprint("usage: dwm [-v]\n");
break;
+ case 'v':
+ fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
+ exit(EXIT_SUCCESS);
+ break;
}
}
}
}
@@
-204,12
+201,12
@@
main(int argc, char *argv[])
XSetErrorHandler(xerrorstart);
/* this causes an error if some other WM is running */
XSelectInput(dpy, root, SubstructureRedirectMask);
XSetErrorHandler(xerrorstart);
/* this causes an error if some other WM is running */
XSelectInput(dpy, root, SubstructureRedirectMask);
- X
Flush(dpy
);
+ X
Sync(dpy, False
);
if(otherwm)
eprint("dwm: another window manager is already running\n");
if(otherwm)
eprint("dwm: another window manager is already running\n");
- XSetErrorHandler(
0
);
+ XSetErrorHandler(
NULL
);
xerrorxlib = XSetErrorHandler(xerror);
/* init atoms */
xerrorxlib = XSetErrorHandler(xerror);
/* init atoms */
@@
-264,6
+261,7
@@
main(int argc, char *argv[])
XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);
strcpy(stext, "dwm-"VERSION);
XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);
strcpy(stext, "dwm-"VERSION);
+
scan();
/* main event loop, reads status text from stdin as well */
scan();
/* main event loop, reads status text from stdin as well */