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() void PanelView::resizePanel()
{ {
QSize targetSize;
QSize targetMinSize;
QSize targetMaxSize;
if (formFactor() == Plasma::Types::Vertical) { if (formFactor() == Plasma::Types::Vertical) {
const int minSize = qMax(MINSIZE, m_minLength); const int minSize = qMax(MINSIZE, m_minLength);
const int maxSize = qMin(m_maxLength, m_screenToFollow->size().height() - m_offset); const int maxSize = qMin(m_maxLength, m_screenToFollow->size().height() - m_offset);
setMinimumSize(QSize(thickness(), minSize)); targetMinSize = QSize(thickness(), minSize);
setMaximumSize(QSize(thickness(), maxSize)); targetMaxSize = QSize(thickness(), maxSize);
resize(thickness(), qBound(minSize, m_contentLength, maxSize)); targetSize = QSize(thickness(), qBound(minSize, m_contentLength, maxSize));
} else { } else {
const int minSize = qMax(MINSIZE, m_minLength); const int minSize = qMax(MINSIZE, m_minLength);
const int maxSize = qMin(m_maxLength, m_screenToFollow->size().width() - m_offset); const int maxSize = qMin(m_maxLength, m_screenToFollow->size().width() - m_offset);
setMinimumSize(QSize(minSize, thickness())); targetMinSize = QSize(minSize, thickness());
setMaximumSize(QSize(maxSize, thickness())); targetMaxSize = QSize(maxSize, thickness());
resize(qBound(minSize, m_contentLength, 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 //position will be updated implicitly from resizeEvent
} }

Loading…
Cancel
Save