Mercurial > aewl
comparison wm.c @ 3:e969f3575b7a
several new changes, made gridmenu working
author | Anselm R. Garbe <garbeam@wmii.de> |
---|---|
date | Mon, 10 Jul 2006 19:46:24 +0200 |
parents | a79188fe4a40 |
children | e5018cae273f |
comparison
equal
deleted
inserted
replaced
2:a79188fe4a40 | 3:e969f3575b7a |
---|---|
11 #include <X11/Xatom.h> | 11 #include <X11/Xatom.h> |
12 #include <X11/Xproto.h> | 12 #include <X11/Xproto.h> |
13 | 13 |
14 #include "wm.h" | 14 #include "wm.h" |
15 | 15 |
16 /* X structs */ | |
16 Display *dpy; | 17 Display *dpy; |
17 Window root; | 18 Window root; |
18 XRectangle rect; | 19 XRectangle rect; |
19 int screen, sel_screen; | 20 Pixmap pmap; |
20 Atom wm_atom[WMLast]; | 21 Atom wm_atom[WMLast]; |
21 Atom net_atom[NetLast]; | 22 Atom net_atom[NetLast]; |
22 Cursor cursor[CurLast]; | 23 Cursor cursor[CurLast]; |
24 | |
25 int screen, sel_screen; | |
23 unsigned int kmask, numlock_mask; | 26 unsigned int kmask, numlock_mask; |
24 Pixmap pmap; | 27 |
28 /* draw structs */ | |
29 Brush brush = {0}; | |
25 | 30 |
26 enum { WM_PROTOCOL_DELWIN = 1 }; | 31 enum { WM_PROTOCOL_DELWIN = 1 }; |
27 | 32 |
28 static Bool other_wm_running; | 33 static Bool other_wm_running; |
29 static int (*x_error_handler) (Display *, XErrorEvent *); | 34 static int (*x_error_handler) (Display *, XErrorEvent *); |
206 /* check if another WM is already running */ | 211 /* check if another WM is already running */ |
207 other_wm_running = False; | 212 other_wm_running = False; |
208 XSetErrorHandler(startup_error_handler); | 213 XSetErrorHandler(startup_error_handler); |
209 /* this causes an error if some other WM is running */ | 214 /* this causes an error if some other WM is running */ |
210 XSelectInput(dpy, root, SubstructureRedirectMask); | 215 XSelectInput(dpy, root, SubstructureRedirectMask); |
211 XSync(dpy, False); | 216 XFlush(dpy); |
212 | 217 |
213 if(other_wm_running) | 218 if(other_wm_running) |
214 error("gridwm: another window manager is already running\n"); | 219 error("gridwm: another window manager is already running\n"); |
215 | 220 |
216 rect.x = rect.y = 0; | 221 rect.x = rect.y = 0; |
244 | 249 |
245 wa.event_mask = SubstructureRedirectMask | EnterWindowMask | LeaveWindowMask; | 250 wa.event_mask = SubstructureRedirectMask | EnterWindowMask | LeaveWindowMask; |
246 wa.cursor = cursor[CurNormal]; | 251 wa.cursor = cursor[CurNormal]; |
247 XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); | 252 XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); |
248 | 253 |
254 /* style */ | |
255 loadcolors(dpy, screen, &brush, BGCOLOR, FGCOLOR, BORDERCOLOR); | |
256 loadfont(dpy, &brush.font, FONT); | |
257 | |
249 scan_wins(); | 258 scan_wins(); |
250 | 259 |
251 cleanup(); | 260 cleanup(); |
252 XCloseDisplay(dpy); | 261 XCloseDisplay(dpy); |
253 | 262 |