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

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

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to