-  Display *disp = (Display*)wxGetDisplay();
-
-  if ( XineramaIsActive(disp) )
-  {
-    XineramaScreenInfo *screenarr;
-    int numscreens;
-    screenarr = XineramaQueryScreens(disp, &numscreens);
-
-    m_priv->m_rect = wxRect(screenarr[index].x_org, screenarr[index].y_org,
-                            screenarr[index].width, screenarr[index].height);
-    m_priv->m_depth = DefaultDepth(disp, DefaultScreen(disp));
-    XFree(screenarr);
-  }
-  else
-  {
-    wxSize size = wxGetDisplaySize();
-    m_priv->m_rect = wxRect(0, 0, size.GetWidth(), size.GetHeight());
-    m_priv->m_depth = wxDisplayDepth();
-  }
-}
+public:
+    wxDisplayImplX11(unsigned n, const XineramaScreenInfo& info)
+        : wxDisplayImpl(n),
+          m_rect(info.x_org, info.y_org, info.width, info.height)
+    {
+    }
+
+    virtual wxRect GetGeometry() const { return m_rect; }
+    virtual wxString GetName() const { return wxString(); }