_screen)),
HeightOfScreen(ScreenOfDisplay(**display,
_screen)));
- /*
- If the default depth is at least 8 we will use that,
- otherwise we try to find the largest TrueColor visual.
- Preference is given to 24 bit over larger depths if 24 bit is an option.
- */
-
- _depth = DefaultDepth(**display, _screen);
- _visual = DefaultVisual(**display, _screen);
- _colormap = DefaultColormap(**display, _screen);
-
- if (_depth < 8) {
- // search for a TrueColor Visual... if we can't find one...
- // we will use the default visual for the screen
- XVisualInfo vinfo_template, *vinfo_return;
- int vinfo_nitems;
- int best = -1;
-
- vinfo_template.screen = _screen;
- vinfo_template.c_class = TrueColor;
-
- vinfo_return = XGetVisualInfo(**display,
- VisualScreenMask | VisualClassMask,
- &vinfo_template, &vinfo_nitems);
- if (vinfo_return) {
- int max_depth = 1;
- for (int i = 0; i < vinfo_nitems; ++i) {
- if (vinfo_return[i].depth > max_depth) {
- if (max_depth == 24 && vinfo_return[i].depth > 24)
- break; // prefer 24 bit over 32
- max_depth = vinfo_return[i].depth;
- best = i;
- }
- }
- if (max_depth < _depth) best = -1;
- }
-
- if (best != -1) {
- _depth = vinfo_return[best].depth;
- _visual = vinfo_return[best].visual;
- _colormap = XCreateColormap(**display, _root_window, _visual,
- AllocNone);
- }
-
- XFree(vinfo_return);
- }
-
// get the default display string and strip the screen number
string default_string = DisplayString(**display);
const string::size_type pos = default_string.rfind(".");
_display_string = string("DISPLAY=") + default_string + '.' +
itostring(static_cast<unsigned long>(_screen));
-
+
#if 0 //def XINERAMA
_xinerama_active = False;
// if we can't find any xinerama regions, then we act as if it is not
// active, even though it said it was
- _xinerama_active = True;
+ _xinerama_active = true;
}
}
}
}
+#else
+ _xinerama_active = false;
#endif // XINERAMA
+ if (!_xinerama_active)
+ _xinerama_areas.push_back(Rect(Point(0, 0), _size));
}
}