[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