----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviewboard.kde.org/r/2311/ -----------------------------------------------------------
(Updated 2009-12-03 03:43:24.908383) Review request for Plasma. Changes ------- While investigating what Tony said. I found out that the problem was that if newSize is equal to m_originalGeom.size(), newCenter is 0,0 and newPos is NaN. because of this line: newCenter = (QPointF(m_originalGeom.size().width(), m_originalGeom.size().height())/2 - newSize/2); here's the value of the vars when the bug was triggered: m_applet->minimumSize() = 178, 88 newSize = 178.063, 88.0312 m_originalGeom.size() = 178.063, 88.0312 newCenter = 0, 0 newPos = nan, nan the first version of my patch was better. what do you prefer? this : if (!(newSize.x() == m_originalGeom.size().width() && newSize.y() == m_originalGeom.size().height())) { or : if (newCenter != QPointF(0, 0)) { or anything better? and thanks again Tony for catching it. Summary ------- With today's latest code I found a bug where a plasmoid, if resized to a smaller value than it's minimumSize, would move to the top left corner and in a broken state (cannot be removed unless editing the config file and it's not possible to use the desktop until it's fixed). notmart was not able to reproduce the bug so I am not sure if I am the only one having this problem. There is two way I am able to reproduce it. 1. If I remove and re-add the comic plasmoid using XKCD, the plasmoid is smaller than it's minimumSize. Trying to resize it to a smaller value instantly cause the bug. 2. If I add the comic plasmoid (or the battery) and it's bigger than the minimum size. I can resize it to the minimum (but no farther) in one step. When it's at the minimum if I try again it cause the bug. The bug is caused by the line "newCenter = (QPointF(m_originalGeom.size().width(), m_originalGeom.size().height())/2 - newSize/2);" Since originalGeom and newSize is equal, it result in a QPointF(0,0) which is not friendly with the line "QPointF newPos = m_originalGeom.topLeft() + _k_rotatePoint(newCenter, m_angle);" Diffs (updated) ----- /trunk/KDE/kdelibs/plasma/private/applethandle.cpp 1057530 Diff: http://reviewboard.kde.org/r/2311/diff Testing ------- Thanks, Bruno _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel