GSoC Idea: better multi-head support
Aaron J. Seigo
aseigo at kde.org
Sun Mar 23 11:53:45 CET 2008
On Sunday 23 March 2008, Aike J Sommer wrote:
> Am Sonntag 23 März 2008 07:30:09 schrieb Aaron J. Seigo:
> > so ... as for the screen staying grey: the View will only respond to
> > changes made to the associated containment. so first thing to check is
> > that the containment is still associated with the View (it should be, but
> > it's good to get the easy stuff that would create obvious breakage out of
> > the way first)
>
> Thats problem #1, the Containment is not associated with a View, there is
> no View for screen 1, because of:
>
> if (containment->screen() > -1 &&
> containment->screen() <
> QApplication::desktop()->numScreens()) {
> m_root->createDesktopView(containment);
>
> in PlasmaApp::createView
well, of course we don't create views for screens that don't exist. the view
should be created on demand when the screen comes into being. the containment
may pre-exist that, of course.
> > next, if the geometryChanged() signal is not being emitted from the
> > Containment, then the View won't react. now... in Containment::setScreen,
> > resize should be being called on line 839. that should result in
> > Applet::setGeometry being called (Widget::resize just calls setGeometry,
> > which is a virtual method that is implemented in Applet) and in
> > Applet::setGeometry it should be emitting geometryChanged if either the
> > size or the position changes.
> >
> > possible problems: the size isn't actually changing (so no geometry
> > change emit'd) or resize on line 839 isn't getting called for some
> > reason.
>
> Problem #2: resize will not change the position, this leads to
> geometryChanged not being emitted when only the position changes
geometryChanged is emitted in Applet::setGeometry when either the size or
position changes.
> > otherwise, if the Containment is associated with the View, the View
> > should shift what it is looking at on the Corona scene when
> > geometryChanged is emitted.
> >
> > if all goes well you should actually see a line in the debug output on
> > console that starts with: !!!!!!!!!!!!!!!!! setting the scene rect to
>
> With emitting containmentAdded to fix #1
where did you add this exactly? (attaching patches would be great)
> and changing resize() to setGeometry() to fix #2
hmm ... that doesn't make much sense since resize() is:
void Widget::resize(const QSizeF& size)
{
setGeometry(QRectF(pos(), size));
}
so Applet::setGeometry should be getting called.
> this line actually shows up (whenever qt actually
> emits the signal at least), unfortunately this still doesnt result in
> anything beeing shown... btw: the rect its changed to seems to be perfectly
> fine: something like (1152,0 1400x1050)
hmm... can you attach the patch as you have it at this point?
--
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43
KDE core developer sponsored by Trolltech
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/panel-devel/attachments/20080323/c7933fed/attachment.pgp
More information about the Panel-devel
mailing list