Client_Get(Window w) {
Client * c;
- if (w == 0 || (getScreenFromRoot(w) != 0))
+ if (w == 0 || (w == root))
return 0;
/* Search for the client corresponding to this window. */
Client_Focus(focus, CurrentTime);
}
- if (getScreenFromRoot(c->parent) == 0)
+ if (c->parent != root)
XDestroyWindow(dpy, c->parent);
if (c->name != 0)
ev.xclient.format = 32;
ev.xclient.data.l[0] = data0;
ev.xclient.data.l[1] = data1;
- mask = (getScreenFromRoot(w) != 0) ? SubstructureRedirectMask : 0L;
+ mask = (w == root) ? SubstructureRedirectMask : 0L;
XSendEvent(dpy, w, False, mask, &ev);
}
* We don't draw on the root window so that people can have
* their favourite Spice Girls backdrop...
*/
- if (getScreenFromRoot(w) != 0)
+ if (w == root)
return;
/* redraw window frame */
if (c == 0 || c->window != e->window) {
int screen;
- for (screen = 0; screen < screen_count; screen++)
- scanWindowTree(screen);
+ scanWindowTree();
c = Client_Get(e->window);
if (c == 0 || c->window != e->window) {
fprintf(stderr, "MapRequest for non-existent window!\n");
switch (c->state) {
case WithdrawnState:
- if (getScreenFromRoot(c->parent) != 0) {
+ if (c->parent == root) {
manage(c, 0);
break;
}
if (e->value_mask & CWBorderWidth)
c->border = e->border_width;
- if (getScreenFromRoot(c->parent) == 0) {
+ if (c->parent != root) {
wc.x = c->size.x;
wc.y = c->size.y;
if (c->framed == True)
Client * c;
XReparentEvent * e = &ev->xreparent;
- if (getScreenFromRoot(e->event) == 0 || e->override_redirect || getScreenFromRoot(e->parent) != 0)
+ if (e->event != root || e->override_redirect || e->parent == root)
return;
c = Client_Get(e->window);
- if (c != 0 && (getScreenFromRoot(c->parent) != 0 || Client_IsState(c, WithdrawnState)))
+ if (c != 0 && (c->parent == root || Client_IsState(c, WithdrawnState)))
Client_Remove(c);
}
Cursor box_cursor;
Cursor cursor_map[E_LAST];
-int screen_count; /* The number of screens. */
-ScreenInfo * screens; /* Information about these screens. */
-
XFontSet font_set = NULL; /* Font set for title var */
XFontSetExtents *font_set_ext = NULL;
}
extern void
-scanWindowTree(int screen) {
+scanWindowTree(void) {
unsigned int i;
unsigned int nwins;
Client * c;
static void
initScreens(void) {
- int screen;
-
- /* Find out how many screens we've got, and allocate space for their info. */
- screen_count = ScreenCount(dpy);
- printf("screens: %d\n", screen_count);
- screens = (ScreenInfo *) malloc(screen_count * sizeof(ScreenInfo));
-
/* Go through the screens one-by-one, initialising them. */
- for (screen = 0; screen < screen_count; screen++) {
- initialiseCursors(screen);
- initScreen(screen);
- scanWindowTree(screen);
- }
+ initialiseCursors(0);
+ initScreen(0);
+ scanWindowTree();
}
static void
/* Make sure all our communication to the server got through. */
XSync(dpy, False);
}
-
-/**
-Find the screen for which root is the root window.
-*/
-ScreenInfo *
-getScreenFromRoot(Window wroot) {
- int screen;
-
- for (screen = 0; screen < screen_count; screen++)
- if (root == wroot)
- return &screens[screen];
-
- return 0;
-}
DSizeKeyboard, DMoveKeyboard
} EWMHDirection;
-/**
-* Screen information.
-*/
-typedef struct ScreenInfo ScreenInfo;
-struct ScreenInfo {
-};
-
/* Client flags for EWMH protocols and window behavior */
enum {
// F_FRAMED = (1 << 0),
extern Cursor box_cursor;
extern Cursor cursor_map[E_LAST];
-extern int screen_count;
-extern ScreenInfo * screens;
extern XFontSet font_set;
extern XFontSetExtents *font_set_ext;
extern Atom wm_state;
extern int titleHeight(void);
extern int titleWidth(XFontSet font_set, Client *c);
extern int ascent(XFontSetExtents *font_set_ext);
-extern ScreenInfo * getScreenFromRoot(Window);
-extern void scanWindowTree(int);
+extern void scanWindowTree(void);
/* client.c */
extern Edge interacting_edge;