[PATCH] Multiscreen fix!
Alessandro Diaferia
alediaferia at gmail.com
Sun Feb 1 15:24:36 CET 2009
2009/2/1 Guillaume Pothier <gpothier at gmail.com>
> Hi Alessandro, sorry I didn't reply earlier,
Hi Guillaume, np :)
> I was offline this week.
> I think your fix is not in the ideal place. I think that what happens
> is that you are using a driver that is not xrandr1.2-aware (please
> tell me if I'm wrong),
how can I check that?
> and therefore Kephal falls back to
> QDesktopWidget for screen management; unfortunately QDesktopWidget has
> this problem that it still reports the old screen information while
> the notifications are processed. But the fix for this should be in
> Kephal, not in plasma (otherwise the problem would reappear in other
> components such as kwin).
I deeply checked and Kephal actually returns correct screen info (2
screens,
the first (0, 0, 1280, 1024), the second(1280, 0, 1680, 1050)). Moreover
adjustSize() uses Plasma::View::screen()
in order to resize the view, and before delaying adjustSize, that screen
was just wrong.
> I actually had a patch to fix this but I was waiting for somebody to
> test it before committing. Can you check this bug:
> http://bugs.kde.org/show_bug.cgi?id=181325 and test the patch,
> reverting your own patch, and see if it works for you?
It does not do me the trick.. I still have second screen displacement.. I
feel the issues are not correlated, anyway i'd wait for
someone else, more expert than me, to talk :)
> Cheers,
> g
>
Cheers :)
> 2009/1/30 Alessandro Diaferia <alediaferia at gmail.com>:
> > As you can see from the sources Plasma::View uses QTimer::singleShot(0,
> > this, SLOT(privateInit())) in the ctor but DesktopView calls adjustSize()
> in
> > the ctor with no delay..
> >
> > This causes the fact that adjustSize() uses invalid information about the
> > current screen to setup its size and makes my second screen disappear (or
> > actually, with a wrong size/position).
> > I managed to fix this giving a delay also to adjustSize() so that when it
> is
> > called the correct information are already set (and screen() returns the
> > correct number in this case).
> >
> > Hope this is ok to commit, since i'd like to have my screen back
> officially
> > :P
> >
> > Since i'm having troubles with the reviewboard here comes the patch:
> >
> > Index: shells/desktop/desktopview.cpp
> > ===================================================================
> >
> > --- shells/desktop/desktopview.cpp (revision 918687)
> > +++ shells/desktop/desktopview.cpp (working copy)
> > @@ -104,7 +104,7 @@ DesktopView::DesktopView(Plasma::Contain
> > QBrush b(tile);
> > setBackgroundBrush(tile);
> >
> >
> > - adjustSize();
> > + QTimer::singleShot(0, this, SLOT(adjustSize()));
> >
> > Kephal::Screens *screens = Kephal::Screens::self();
> > connect(screens, SIGNAL(screenResized(Kephal::Screen *, QSize,
> QSize)),
> >
> >
> > Hugs!!
> >
> > --
> > Alessandro Diaferia
> >
> > _______________________________________________
> > Plasma-devel mailing list
> > Plasma-devel at kde.org
> > https://mail.kde.org/mailman/listinfo/plasma-devel
> >
> >
> _______________________________________________
> Plasma-devel mailing list
> Plasma-devel at kde.org
> https://mail.kde.org/mailman/listinfo/plasma-devel
>
--
Alessandro Diaferia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/plasma-devel/attachments/20090201/31a51158/attachment.htm
More information about the Plasma-devel
mailing list