[Qt-interest] fullscreen windows on X11 +Xinerama

Clinton Stimpson clinton at elemtech.com
Wed Mar 10 21:25:48 CET 2010


Are you using OpenGL with this top level window?  If so, you may need to be 
smarter about XCreateWindow() by getting the right visual and other 
parameters.

  Window win = XCreateWindow(display, p, a.x, a.y, a.width, a.height,
                             0, vi->depth, InputOutput, vi->visual,
                             CWBackPixel|CWBorderPixel|CWColormap, &attrib);

Complete code is accessible here:
<http://public.kitware.com/cgi-
bin/viewcvs.cgi/GUISupport/Qt/QVTKWidget.cxx?view=markup>

Otherwise, you could probably just use your top level window as a container 
for other widgets.
Also, the OpenGL context should be created during the first show().

Clint

On Wednesday 10 March 2010 01:10:15 pm Wesley Smith wrote:
> thanks!  I'm able to use the create(...) function to do what I want,
> but now I'm having trouble with OpenGL contexts.  Does anyone know how
> passing a window generated with XCreateWindow interacts with the
> QGLWidget's OpenGL context?  Do I also have to make my own context?
> It's giving me XBadDrawable errors right now.  From what I understand,
> create gets called by in the constructor.  Does anyone know where the
> opengl context gets created?  Does calling create invalidate it if it
> exists such that the widget will recreate it properly?  Or do I have
> to manage this myself?
> 
> thanks,
> wes
> 
> On Wed, Mar 10, 2010 at 11:27 AM, Clinton Stimpson <clinton at elemtech.com> 
wrote:
> > On Wednesday 10 March 2010 11:51:51 am Wesley Smith wrote:
> >> I'm having some issues trying to get fullscreen windows to span
> >> multiple heads on X11 with Xinerama.  I'm on ubuntu Jaunty with Qt
> >> 4.3.  From what I can tell, the window manager is restricting windows
> >> to be the size of one monitor.  I've also tried setting the window to
> >> be borderless with a size equivalent to the multi-head display and i'm
> >> not able to get the window beyond one monitor without dragging it
> >> manually.
> >>
> >> I've managed to get a proper multihead fullscreen window in X11
> >> directly using XSetWindowAttrbutes.override_redirect = True and adding
> >> the CWOverrideRedirect flag to the window mask field of XCreateWindow.
> >>  Now I'm looking for a way to do this through Qt.  Is there any way
> >> for meet to somehow add these flags while still using QWidget's show
> >> method to turn a widget into a window?
> >
> > If not, then you can still do an XCreateWindow and then use that when you
> > call QWidget::create(...).
> >
> > Clint
> > _______________________________________________
> > Qt-interest mailing list
> > Qt-interest at trolltech.com
> > http://lists.trolltech.com/mailman/listinfo/qt-interest
> 



More information about the Qt-interest-old mailing list