minor changes for screeninfo constructor
This commit is contained in:
parent
2f0c8b1c27
commit
1cb8a2d14a
2 changed files with 18 additions and 21 deletions
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: BaseDisplay.cc,v 1.20 2002/08/30 12:57:41 fluxgen Exp $
|
// $Id: BaseDisplay.cc,v 1.21 2002/10/25 20:51:54 fluxgen Exp $
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ m_server_grabs(0)
|
||||||
XSetErrorHandler((XErrorHandler) handleXErrors);
|
XSetErrorHandler((XErrorHandler) handleXErrors);
|
||||||
|
|
||||||
for (int i = 0; i < number_of_screens; i++) {
|
for (int i = 0; i < number_of_screens; i++) {
|
||||||
ScreenInfo *screeninfo = new ScreenInfo(this, i);
|
ScreenInfo *screeninfo = new ScreenInfo(i);
|
||||||
screenInfoList.push_back(screeninfo);
|
screenInfoList.push_back(screeninfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -261,21 +261,18 @@ void BaseDisplay::ungrab() {
|
||||||
m_server_grabs = 0;
|
m_server_grabs = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ScreenInfo::ScreenInfo(int num) {
|
||||||
|
basedisplay = BaseDisplay::instance();
|
||||||
|
Display * const disp = basedisplay->getXDisplay();
|
||||||
|
|
||||||
ScreenInfo::ScreenInfo(BaseDisplay *d, int num) {
|
|
||||||
basedisplay = d;
|
|
||||||
screen_number = num;
|
screen_number = num;
|
||||||
|
|
||||||
root_window = RootWindow(basedisplay->getXDisplay(), screen_number);
|
root_window = RootWindow(disp, screen_number);
|
||||||
depth = DefaultDepth(basedisplay->getXDisplay(), screen_number);
|
depth = DefaultDepth(disp, screen_number);
|
||||||
|
|
||||||
width =
|
width =
|
||||||
WidthOfScreen(ScreenOfDisplay(basedisplay->getXDisplay(), screen_number));
|
WidthOfScreen(ScreenOfDisplay(disp, screen_number));
|
||||||
height =
|
height =
|
||||||
HeightOfScreen(ScreenOfDisplay(basedisplay->getXDisplay(), screen_number));
|
HeightOfScreen(ScreenOfDisplay(disp, screen_number));
|
||||||
|
|
||||||
// search for a TrueColor Visual... if we can't find one... we will use the
|
// search for a TrueColor Visual... if we can't find one... we will use the
|
||||||
// default visual for the screen
|
// default visual for the screen
|
||||||
|
@ -287,7 +284,7 @@ ScreenInfo::ScreenInfo(BaseDisplay *d, int num) {
|
||||||
|
|
||||||
visual = (Visual *) 0;
|
visual = (Visual *) 0;
|
||||||
|
|
||||||
if ((vinfo_return = XGetVisualInfo(basedisplay->getXDisplay(),
|
if ((vinfo_return = XGetVisualInfo(disp,
|
||||||
VisualScreenMask | VisualClassMask,
|
VisualScreenMask | VisualClassMask,
|
||||||
&vinfo_template, &vinfo_nitems)) &&
|
&vinfo_template, &vinfo_nitems)) &&
|
||||||
vinfo_nitems > 0) {
|
vinfo_nitems > 0) {
|
||||||
|
@ -303,20 +300,20 @@ ScreenInfo::ScreenInfo(BaseDisplay *d, int num) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (visual) {
|
if (visual) {
|
||||||
m_colormap = XCreateColormap(basedisplay->getXDisplay(), root_window,
|
m_colormap = XCreateColormap(disp, root_window,
|
||||||
visual, AllocNone);
|
visual, AllocNone);
|
||||||
} else {
|
} else {
|
||||||
visual = DefaultVisual(basedisplay->getXDisplay(), screen_number);
|
visual = DefaultVisual(disp, screen_number);
|
||||||
m_colormap = DefaultColormap(basedisplay->getXDisplay(), screen_number);
|
m_colormap = DefaultColormap(disp, screen_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
// check if we have Xinerama extension enabled
|
// check if we have Xinerama extension enabled
|
||||||
if (XineramaIsActive(basedisplay->getXDisplay())) {
|
if (XineramaIsActive(disp)) {
|
||||||
m_hasXinerama = true;
|
m_hasXinerama = true;
|
||||||
xineramaLastHead = 0;
|
xineramaLastHead = 0;
|
||||||
xineramaInfos =
|
xineramaInfos =
|
||||||
XineramaQueryScreens(basedisplay->getXDisplay(), &xineramaNumHeads);
|
XineramaQueryScreens(disp, &xineramaNumHeads);
|
||||||
} else {
|
} else {
|
||||||
m_hasXinerama = false;
|
m_hasXinerama = false;
|
||||||
xineramaInfos = 0; // make sure we don't point anywhere we shouldn't
|
xineramaInfos = 0; // make sure we don't point anywhere we shouldn't
|
||||||
|
@ -324,7 +321,7 @@ ScreenInfo::ScreenInfo(BaseDisplay *d, int num) {
|
||||||
#endif // XINERAMA
|
#endif // XINERAMA
|
||||||
}
|
}
|
||||||
|
|
||||||
ScreenInfo::~ScreenInfo(void) {
|
ScreenInfo::~ScreenInfo() {
|
||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
if (m_hasXinerama) { // only free if we first had it
|
if (m_hasXinerama) { // only free if we first had it
|
||||||
XFree(xineramaInfos);
|
XFree(xineramaInfos);
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: BaseDisplay.hh,v 1.29 2002/09/08 19:12:33 fluxgen Exp $
|
// $Id: BaseDisplay.hh,v 1.30 2002/10/25 20:52:42 fluxgen Exp $
|
||||||
|
|
||||||
#ifndef BASEDISPLAY_HH
|
#ifndef BASEDISPLAY_HH
|
||||||
#define BASEDISPLAY_HH
|
#define BASEDISPLAY_HH
|
||||||
|
@ -131,7 +131,7 @@ private:
|
||||||
|
|
||||||
class ScreenInfo {
|
class ScreenInfo {
|
||||||
public:
|
public:
|
||||||
ScreenInfo(BaseDisplay *bdisp, int screen_num);
|
explicit ScreenInfo(int screen_num);
|
||||||
~ScreenInfo();
|
~ScreenInfo();
|
||||||
|
|
||||||
inline BaseDisplay *getBaseDisplay() { return basedisplay; }
|
inline BaseDisplay *getBaseDisplay() { return basedisplay; }
|
||||||
|
|
Loading…
Reference in a new issue