GSoC Idea: better multi-head support
Aike J Sommer
dev at aikesommer.name
Sat Mar 22 21:01:08 CET 2008
Am Samstag 22 März 2008 18:25:58 schrieb Aaron J. Seigo:
> On Saturday 22 March 2008, Aike J Sommer wrote:
> > It was actually kinda easy to make it "seem" like the 2 monitors have
> > indpendent virtual desktops... It basically works by having n*m virtual
> > desktops and remapping the windows depending on the monitor they r
> > currently on and the selected desktop!
> > The plus is: it can be done by a simple app listening to
> > windowing-events, having a pager that "understands" this would be a plus
> > of course!! ;-) The downside: its a hack ;-) and there is slight flicker
> > when the window is remapped!
>
> personally i don't really see the point of this other than "cool hack". it
> sounds like a more complex set of concepts with more code paths to deal
> with for a win of ..? (and this code would belong in kwin, of course)
I guess thats mostly what it is... Even though i could imagine a few
situations where i would like to work that way...
But anyways, doesnt really belong here! :-)
> > - it would stay at 1400x1050 but move to the smaller external screen,
> > resulting in a 376 pixel wide strip of the wallpaper on the left of the
> > internal screen
> > - it would resize to 1024x768 and move to the external screen, this
> > would then leave a 376 pixel wide strip of grey and white squares on the
> > internal screen
>
> did you ./apply_patches in qt-copy? because without patch 0172, there is no
> hope of this working with xrandr 1.2. if your qt does have patch 0172
> applied then this is problematic and would need to be debugged.
Yes... I did ./apply_patches!
>
> the code path is something like:
>
> Corona gets the screen resized(int) signal from QApplication::desktop(). it
This doesnt seem to happen all the time... Especially on reducing the
resolution that signal seems to be missing... And even when its emitted it
will *always* report screen 0 no matter which one actually was
resized/enabled/disabled!
> finds the current Containment associated the screen and notifies it of
> this; that should result in the resizing of the Containment (and, if
> necessary, the repositioning of it on the canvas), which then emits its
> geometryChanged() signal, cahsing the View to adjust what it is looking at
> on the Corona.
Even with cycling through all screens (since resized only reports 0) it doesnt
work. It will find a desktop-containment for screen 1 (even if screen 1 didnt
exist before) and will call setScreen on that, but the screen will just stay
grey!
>
> some of this code is pretty new and it hasn't been thoroughly tested yet.
I'd be willing to do that!! ;-) I'll keep trying to find my way through the
relevant parts of the source, too... Do u have any hints what to look at??
>
> (btw: good news, 0172 has been applied upstream)
Thats good to hear...
:-)
More information about the Panel-devel
mailing list