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

Marco Martin notmart at gmail.com
Tue Aug 26 18:06:30 UTC 2014


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


here seems to break the default size of the calendar and systray popups


src/plasmaquick/dialog.cpp
<https://git.reviewboard.kde.org/r/119945/#comment45633>

    maybe repositionIfOffscreen() would be more immediately understandable?


- Marco Martin


On Aug. 26, 2014, 5:34 p.m., Vishesh Handa wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119945/
> -----------------------------------------------------------
> 
> (Updated Aug. 26, 2014, 5:34 p.m.)
> 
> 
> 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/20140826/2c2870eb/attachment.html>


More information about the Plasma-devel mailing list