Review Request: Speed up panel resize by eliminating extra calls to PanelView::updateStruts()

Josh guitarist198 at yahoo.com
Sat Feb 21 09:45:19 CET 2009


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

Review request for Plasma.


Summary
-------

While doing some other work with panel resizing, I noticed PanelView::updateStruts() gets called many times, and slows down the process of resizing the panel.  This is can be seen easiest if one creates a panel with no widgets in it.  With an empty panel, when resizing, the panel will get to the final size and then slowly fall down into place while updateStruts() gets called between 5-15 times.

This patch modifies panelview.h and panelview.cpp in /trunk/kde/kdebase/workspace/plasma/shells/desktop.  A one shot timer is created and this timer is started instead of calling updateStruts().  Before each start point there is also a call to stop the timer.  If the timer is allowed to timeout (because there hasn't been any resizing in STRUTSTIMERDELAY milliseconds), then updateStruts() is called.  Not all calls to updateStruts() are replaced with a start of the timer, such as in PanelView::init().

Thanks in advance.


Diffs
-----

  /trunk/KDE/kdebase/workspace/plasma/shells/desktop/panelview.h 929322 
  /trunk/KDE/kdebase/workspace/plasma/shells/desktop/panelview.cpp 929322 

Diff: http://reviewboard.kde.org/r/144/diff


Testing
-------

Empty panel, full panel, horizontal and vertical panels, resizing fast and slow.


Thanks,

Josh



More information about the Plasma-devel mailing list