Status of multi-monitor support

Guillaume Pothier gpothier at gmail.com
Tue Oct 14 04:07:11 CEST 2008


2008/10/13 Aaron J. Seigo <aseigo at kde.org>:
> so what you need to be concerned with is the size (not location) of the
> Containment, and setting that size in response to screen changes. currently in
> the plasma desktop shell, that happens in DesktopView::adjustSize() with the
> line:
>
>    containment()->resize(geom.size());
>
> DesktopView::adjustSize is called from PlasmaApp in response to the
> QDesktopWidget::resized signal.

Yes, but there is something broken somewhere, not related to my patch
as it happened before I started hacking on that. You can see the
problem in the screenshot I sent, something gets the geometries
swapped: the large desktop, or at least the wallpaper, is displayed on
the left, but the large screen is physically on the right. However the
panel is properly centered and at the bottom of the small screen (the
red and green rectangles represent my actual screen configuration).
You can also see that the 6 pixels gap is visible between the
wallpapers.
What class is responsible for displaying the containments on the screen(s)?

> * why is "kephal::Screens::instance()->screens().size()" used sometimes and
> "kdephal::ScreenUtils::numScreens()" used instead?

Everything should use ScreenUtils, I probably overlooked a few
occurrences of the "old" way...

> * why does DesktopCorona now have a m_numScreens member instead of just
> tracking whatever kephal says it is as the moment?

Well, that member was there before, but it indeed seems it is not
useful anymore.

>
> * i suppose that PlasmaApp::screenMoved would need to move the associated view
> so it is still on screen?

At first sight I would say that screenMoved doesn't need to do
anything as it just means that a screen that was previously on the
left of another is now on the right, for instance. But I'm not yet
sure about how each event should be processed. For now, I'm only
trying to get the initial configuration right, ie. avoiding the
situation depicted in the screenshot, which is how plasma shows up
when started.

>
> * with the code to manage the containments in DesktopCorona, we can probably
> just remove the containment size related code in DesktopView. PlasmaApp can
> manage just the View geometries and DesktopCorona just the containment
> geometries? it's a little muddled right now due to how things evolved over
> time.

That I don't know, I can't say I grasp the full picture yet.

Cheers,
g


More information about the Plasma-devel mailing list