Mercurial > dwm-meillo
comparison main.c @ 74:5370ef170cc9
sanitized names
author | Anselm R. Garbe <garbeam@wmii.de> |
---|---|
date | Fri, 14 Jul 2006 22:54:09 +0200 |
parents | c2ddb9dbbd10 |
children | f08271b7cb20 |
comparison
equal
deleted
inserted
replaced
73:c2ddb9dbbd10 | 74:5370ef170cc9 |
---|---|
44 Client *sel = NULL; | 44 Client *sel = NULL; |
45 | 45 |
46 static Bool other_wm_running; | 46 static Bool other_wm_running; |
47 static const char version[] = | 47 static const char version[] = |
48 "dwm-" VERSION ", (C)opyright MMVI Anselm R. Garbe\n"; | 48 "dwm-" VERSION ", (C)opyright MMVI Anselm R. Garbe\n"; |
49 static int (*x_error_handler) (Display *, XErrorEvent *); | 49 static int (*x_xerror) (Display *, XErrorEvent *); |
50 | 50 |
51 static void | 51 static void |
52 usage() { error("usage: dwm [-v]\n"); } | 52 usage() { error("usage: dwm [-v]\n"); } |
53 | 53 |
54 static void | 54 static void |
92 } | 92 } |
93 return res; | 93 return res; |
94 } | 94 } |
95 | 95 |
96 int | 96 int |
97 win_proto(Window w) | 97 proto(Window w) |
98 { | 98 { |
99 unsigned char *protocols; | 99 unsigned char *protocols; |
100 long res; | 100 long res; |
101 int protos = 0; | 101 int protos = 0; |
102 int i; | 102 int i; |
112 free((char *) protocols); | 112 free((char *) protocols); |
113 return protos; | 113 return protos; |
114 } | 114 } |
115 | 115 |
116 void | 116 void |
117 send_message(Window w, Atom a, long value) | 117 sendevent(Window w, Atom a, long value) |
118 { | 118 { |
119 XEvent e; | 119 XEvent e; |
120 | 120 |
121 e.type = ClientMessage; | 121 e.type = ClientMessage; |
122 e.xclient.window = w; | 122 e.xclient.window = w; |
133 * those cases are ignored (especially on UnmapNotify's). | 133 * those cases are ignored (especially on UnmapNotify's). |
134 * Other types of errors call Xlib's default error handler, which | 134 * Other types of errors call Xlib's default error handler, which |
135 * calls exit(). | 135 * calls exit(). |
136 */ | 136 */ |
137 int | 137 int |
138 error_handler(Display *dpy, XErrorEvent *error) | 138 xerror(Display *dpy, XErrorEvent *error) |
139 { | 139 { |
140 if(error->error_code == BadWindow | 140 if(error->error_code == BadWindow |
141 || (error->request_code == X_SetInputFocus | 141 || (error->request_code == X_SetInputFocus |
142 && error->error_code == BadMatch) | 142 && error->error_code == BadMatch) |
143 || (error->request_code == X_PolyText8 | 143 || (error->request_code == X_PolyText8 |
151 || (error->request_code == X_GrabKey | 151 || (error->request_code == X_GrabKey |
152 && error->error_code == BadAccess)) | 152 && error->error_code == BadAccess)) |
153 return 0; | 153 return 0; |
154 fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n", | 154 fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n", |
155 error->request_code, error->error_code); | 155 error->request_code, error->error_code); |
156 return x_error_handler(dpy, error); /* may call exit() */ | 156 return x_xerror(dpy, error); /* may call exit() */ |
157 } | 157 } |
158 | 158 |
159 /* | 159 /* |
160 * Startup Error handler to check if another window manager | 160 * Startup Error handler to check if another window manager |
161 * is already running. | 161 * is already running. |
162 */ | 162 */ |
163 static int | 163 static int |
164 startup_error_handler(Display *dpy, XErrorEvent *error) | 164 startup_xerror(Display *dpy, XErrorEvent *error) |
165 { | 165 { |
166 other_wm_running = True; | 166 other_wm_running = True; |
167 return -1; | 167 return -1; |
168 } | 168 } |
169 | 169 |
213 screen = DefaultScreen(dpy); | 213 screen = DefaultScreen(dpy); |
214 root = RootWindow(dpy, screen); | 214 root = RootWindow(dpy, screen); |
215 | 215 |
216 /* check if another WM is already running */ | 216 /* check if another WM is already running */ |
217 other_wm_running = False; | 217 other_wm_running = False; |
218 XSetErrorHandler(startup_error_handler); | 218 XSetErrorHandler(startup_xerror); |
219 /* this causes an error if some other WM is running */ | 219 /* this causes an error if some other WM is running */ |
220 XSelectInput(dpy, root, SubstructureRedirectMask); | 220 XSelectInput(dpy, root, SubstructureRedirectMask); |
221 XFlush(dpy); | 221 XFlush(dpy); |
222 | 222 |
223 if(other_wm_running) | 223 if(other_wm_running) |
224 error("dwm: another window manager is already running\n"); | 224 error("dwm: another window manager is already running\n"); |
225 | 225 |
226 XSetErrorHandler(0); | 226 XSetErrorHandler(0); |
227 x_error_handler = XSetErrorHandler(error_handler); | 227 x_xerror = XSetErrorHandler(xerror); |
228 | 228 |
229 /* init atoms */ | 229 /* init atoms */ |
230 wm_atom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | 230 wm_atom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); |
231 wm_atom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); | 231 wm_atom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); |
232 net_atom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); | 232 net_atom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); |
240 cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur); | 240 cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur); |
241 | 241 |
242 grabkeys(); | 242 grabkeys(); |
243 | 243 |
244 /* style */ | 244 /* style */ |
245 dc.bg = initcolor(BGCOLOR); | 245 dc.bg = getcolor(BGCOLOR); |
246 dc.fg = initcolor(FGCOLOR); | 246 dc.fg = getcolor(FGCOLOR); |
247 dc.border = initcolor(BORDERCOLOR); | 247 dc.border = getcolor(BORDERCOLOR); |
248 initfont(FONT); | 248 setfont(FONT); |
249 | 249 |
250 sx = sy = 0; | 250 sx = sy = 0; |
251 sw = DisplayWidth(dpy, screen); | 251 sw = DisplayWidth(dpy, screen); |
252 sh = DisplayHeight(dpy, screen); | 252 sh = DisplayHeight(dpy, screen); |
253 mw = (sw * MASTERW) / 100; | 253 mw = (sw * MASTERW) / 100; |
265 XDefineCursor(dpy, barwin, cursor[CurNormal]); | 265 XDefineCursor(dpy, barwin, cursor[CurNormal]); |
266 XMapRaised(dpy, barwin); | 266 XMapRaised(dpy, barwin); |
267 | 267 |
268 dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen)); | 268 dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen)); |
269 dc.gc = XCreateGC(dpy, root, 0, 0); | 269 dc.gc = XCreateGC(dpy, root, 0, 0); |
270 draw_bar(); | 270 drawstatus(); |
271 | 271 |
272 issel = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask); | 272 issel = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask); |
273 | 273 |
274 wa.event_mask = SubstructureRedirectMask | EnterWindowMask \ | 274 wa.event_mask = SubstructureRedirectMask | EnterWindowMask \ |
275 | LeaveWindowMask; | 275 | LeaveWindowMask; |
313 if(i == '\n' || n >= sizeof(stext) - 1) | 313 if(i == '\n' || n >= sizeof(stext) - 1) |
314 break; | 314 break; |
315 stext[n++] = i; | 315 stext[n++] = i; |
316 } | 316 } |
317 stext[n] = 0; | 317 stext[n] = 0; |
318 draw_bar(); | 318 drawstatus(); |
319 } | 319 } |
320 } | 320 } |
321 } | 321 } |
322 | 322 |
323 cleanup(); | 323 cleanup(); |