Review Request 119945: Dialog: Simplify handling of min/max width/height changed

Vishesh Handa me at vhanda.in
Thu Aug 28 14:39:26 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119945/
-----------------------------------------------------------

(Updated Aug. 28, 2014, 2:39 p.m.)


Status
------

This change has been discarded.


Review request for Plasma.


Repository: plasma-framework


Description
-------

When the minimumWidth/Height of the attached Layout of the mainItem
would change. The following events would happen -

- updateMinimumWidth is called
--> results in resizeEvent being called
--> results in syncMainItemToSize
--> results in slots connected to mainItem widthChanged
---> syncMainItemToSize + syncToMainItemSize being called a few more
times. It's not entirely apparent why at thist point.

This kind of logic is quite hard to follow and more importantly because
of the timers in the middle, an extra paint event is called. This means
the user can first see the window resize and then the item getting
resized.

This patch introduces a little bit of code duplication (can be fixed in
future commits) to clearly establish what updateMinimumWidth should be
doing -
* disconnect signals to make sure mainItem's widthChange is not triggered
* update window size + item size + borders
* reposition if required

The repositioning is useful as currently if a dialog becomes wider if
will not reposition itself and will overflow. With this patch we always
make sure the entire dialog is shown.

Minor Point: On testing without the patch the dialog does reposition
itself if it is not already overflowing. I suspect this is kwin moving
the window.

A test called dialog_minWidthHeighRepositioning.qml can be used to see
how the change occurs before and after.


Diffs
-----

  src/plasmaquick/dialog.h f207f88 
  src/plasmaquick/dialog.cpp 02271e4 

Diff: https://git.reviewboard.kde.org/r/119945/diff/


Testing
-------


Thanks,

Vishesh Handa

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20140828/b1eaadca/attachment.html>


More information about the Plasma-devel mailing list