Avoid calling resize() with our current size

Summary:
resize(size()) does not no-op in QWindow, and actually processes the
resizing. This performs a check that the action is valid.

Test Plan: Resized my panel, all seemed to still work.

Reviewers: #plasma

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D3001
wilder-5.14
l10n daemon script 10 years ago committed by David Edmundson
parent 6d9c6adae2
commit fbd11d8025
  1. 26
      shell/panelview.cpp

@ -461,19 +461,33 @@ QRect PanelView::geometryByDistance(int distance) const
void PanelView::resizePanel()
{
QSize targetSize;
QSize targetMinSize;
QSize targetMaxSize;
if (formFactor() == Plasma::Types::Vertical) {
const int minSize = qMax(MINSIZE, m_minLength);
const int maxSize = qMin(m_maxLength, m_screenToFollow->size().height() - m_offset);
setMinimumSize(QSize(thickness(), minSize));
setMaximumSize(QSize(thickness(), maxSize));
resize(thickness(), qBound(minSize, m_contentLength, maxSize));
targetMinSize = QSize(thickness(), minSize);
targetMaxSize = QSize(thickness(), maxSize);
targetSize = QSize(thickness(), qBound(minSize, m_contentLength, maxSize));
} else {
const int minSize = qMax(MINSIZE, m_minLength);
const int maxSize = qMin(m_maxLength, m_screenToFollow->size().width() - m_offset);
setMinimumSize(QSize(minSize, thickness()));
setMaximumSize(QSize(maxSize, thickness()));
resize(qBound(minSize, m_contentLength, maxSize), thickness());
targetMinSize = QSize(minSize, thickness());
targetMaxSize = QSize(maxSize, thickness());
targetSize = QSize(qBound(minSize, m_contentLength, maxSize), thickness());
}
if (minimumSize() != targetMinSize) {
setMinimumSize(targetMinSize);
}
if (maximumSize() != targetMaxSize) {
setMaximumSize(targetMaxSize);
}
if (size() != targetSize) {
resize(targetSize);
}
//position will be updated implicitly from resizeEvent
}

Loading…
Cancel
Save