+
+ XFreeModifiermap(_modmap);
+
+ for (int i = 0; i < ScreenCount(_display); ++i) {
+ delete _rendercontrol_list[i];
+ delete _screeninfo_list[i];
+ }
+ delete [] _rendercontrol_list;
+ delete [] _screeninfo_list;
+
+ XCloseDisplay(_display);
+}
+
+
+const ScreenInfo* Display::screenInfo(int snum) const
+{
+ assert(snum >= 0);
+ assert(snum < (signed) ScreenCount(_display));
+ return _screeninfo_list[snum];
+}
+
+
+const ScreenInfo* Display::findScreen(Window root) const
+{
+ for (int i = 0; i < ScreenCount(_display); ++i)
+ if (_screeninfo_list[i]->rootWindow() == root)
+ return _screeninfo_list[i];
+ return 0;