Review Request: Fix some issues with resizing panels

Aaron Seigo aseigo at kde.org
Mon Jun 28 18:49:47 CEST 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/4463/#review6314
-----------------------------------------------------------

Ship it!


looks good and the improvement is quite noticeable. great work. i'll commit and backport to the 4.5 branch shortly. and yes, please consider getting an svn account: http://techbase.kde.org/Contribute/Get_a_SVN_Account

:)

- Aaron


On 2010-06-27 11:52:59, Anthony Bryant wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/4463/
> -----------------------------------------------------------
> 
> (Updated 2010-06-27 11:52:59)
> 
> 
> Review request for Plasma.
> 
> 
> Summary
> -------
> 
> Resizing a horizontal panel's height or a vertical panel's width currently has some problems, which make it look like the size is randomly adjusting while you drag it.
> The cause turns out to be a sequence of calls resulting in setContainment() being called on every resize:
> 1. Containment::resizeEvent() - from Qt
> 2. ContainmentPrivate::positionPanel()
> 3. Containment::setPos() - to Qt
> 4. Containment::geometryChanged() signal - from Qt
> 5. ViewPrivate::updateSceneRect() slot
> 6. View::sceneRectAboutToChange() signal
> 7. PanelView::pinchContainmentToCurrentScreen() slot
> 8. PanelView::pinchContainment()
> 9. PanelController::setContainment()
> Whenever setContainment() is called, some of the tool buttons in the controller are removed and re-added. Since this happens on every resize event, resizing the panel is very slow and jerky, and if local coordinates from the mouse event are being compared it turns out in the wrong place.
> 
> To fix this, I have used global coordinates to find the new position of the controller, and removed the call to setContainment() from pinchContainment() - it should only be called on initialization afaics.
> 
> Another issue this fixes is to always resize with something, even if the mouse is out of the allowed range. In this case, it bounds the new size to the allowed range, so that resizing past the limit works as expected.
> 
> 
> Diffs
> -----
> 
>   /trunk/KDE/kdebase/workspace/plasma/desktop/shell/panelcontroller.h 1143346 
>   /trunk/KDE/kdebase/workspace/plasma/desktop/shell/panelcontroller.cpp 1143346 
>   /trunk/KDE/kdebase/workspace/plasma/desktop/shell/panelview.cpp 1143346 
> 
> Diff: http://reviewboard.kde.org/r/4463/diff
> 
> 
> Testing
> -------
> 
> Tried moving and resizing both horizontal and vertical panels. I noticed some visible relayouting of the controller and repainting issues in the panel, but they seem to have existed before this patch as well.
> 
> 
> Thanks,
> 
> Anthony
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/plasma-devel/attachments/20100628/6f545776/attachment.htm 


More information about the Plasma-devel mailing list