Status of multi-monitor support

Guillaume Pothier gpothier at gmail.com
Fri Oct 10 18:02:34 CEST 2008


I need help with the containments' coordinate system. Adjusting view
sizes don't work as expected. Here is a commented log of plasma when I
resize a screen from 1920x1200 to 1280x800 and then back to 1920x1200:

First resize:

plasma(18904) PlasmaApp::screenResized: 0 QSize(1920, 1200) QSize(1280, 800)
plasma(18904) PlasmaApp::screenResized: adjust size for screen 0
QSize(1280, 800)
// kephal provided the signal with correct information and PlasmaApp
starts adjusting the size, all right.

plasma(18904) DesktopView::adjustSize: screen 0 geom QRect(1680,0 1280x800)
// DesktopView::adjustSize also obtains correct information from kephal
// geometry is correct as the screen I am resizing is on the right of
a 1680x1050 screen.

plasma(18904)/libplasma Plasma::ViewPrivate::updateSceneRect:
!!!!!!!!!!!!!!!!! setting the scene rect to QRectF(1926,0 1280x800)
associated screen is 0
// This starts being weird. Where is that 1926 coming from? That's the
containment's sceneBoundingRect(), but why 1926? Note that at least
the size is correct.

plasma(18904) DesktopView::adjustSize: Containment's geom after resize
QRectF(1926,0 1280x800)
plasma(18904) DesktopView::adjustSize: Done 0
plasma(20038) PlasmaApp::screenResized: Done.
// DesktopView::adjustSize exits, as well as PlasmaApp::screenResized.
The containment was properly resized.

plasma(18904)/libplasma Plasma::ViewPrivate::updateSceneRect:
!!!!!!!!!!!!!!!!! setting the scene rect to QRectF(1926,0 1920x1200)
associated screen is 0
// That is bad: ViewPrivate changed its mind and reverted to 1920x1200
size! Who requested the size change at that point? We are outside the
control flow of PlasmaApp::screenResized


And here is what happens when I change back to 1920x1200:

plasma(18904) PlasmaApp::screenResized: 0 QSize(1280, 800) QSize(1920, 1200)
plasma(18904) PlasmaApp::screenResized: adjust size for screen 0
QSize(1920, 1200) plasma(18904) DesktopView::adjustSize: screen 0 geom
QRect(1680,0 1920x1200)
plasma(18904) DesktopView::adjustSize: Containment's geom after resize
QRectF(1926,0 1920x1200)
plasma(18904) DesktopView::adjustSize: Done 0
plasma(20038) PlasmaApp::screenResized: Done.
// All seems okay up to now except for the 1926 coordinate

plasma(18904)/libplasma Plasma::ViewPrivate::updateSceneRect:
!!!!!!!!!!!!!!!!! setting the scene rect to QRectF(1926,0 1280x800)
associated screen is 0
// but here the size is not correct, and again, who requested the size change?

Can somebody explain me what is going on? It seems the ViewPrivate is
"one train late" on each resolution change.

Regards,
g


More information about the Plasma-devel mailing list