Fix panelView updateEnabledBorders being skipped

Summary:
Sometimes the left/right panel edge shadows don't get drawn.
A resize doesn't always call positionPanel so it never gets updated on all
size changes.

Putting it in the event handlers rather than in the setting, means it
will never be missed again.

Test Plan:
Set panel to fill width
Resizing now shows correct corner

Reviewers: #plasma

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D2668
wilder-5.14
David Edmundson 10 years ago
parent 412c2e4635
commit 993983b3c3
  1. 6
      shell/panelview.cpp

@ -365,8 +365,6 @@ void PanelView::positionPanel()
}
KWindowEffects::slideWindow(winId(), slideLocation, -1);
updateEnabledBorders();
}
QRect PanelView::geometryByDistance(int distance) const
@ -453,7 +451,7 @@ void PanelView::resizePanel()
setMaximumSize(QSize(maxSize, thickness()));
resize(qBound(minSize, m_contentLength, maxSize), thickness());
}
//positionPanel will be called implicitly from resizeEvent
//position will be updated implicitly from resizeEvent
}
void PanelView::restore()
@ -626,6 +624,7 @@ void PanelView::setAutoHideEnabled(bool enabled)
void PanelView::resizeEvent(QResizeEvent *ev)
{
updateMask();
updateEnabledBorders();
//don't setGeometry() to make really sure we aren't doing a resize loop
const QPoint pos = geometryByDistance(m_distance).topLeft();
setPosition(pos);
@ -639,6 +638,7 @@ void PanelView::resizeEvent(QResizeEvent *ev)
void PanelView::moveEvent(QMoveEvent *ev)
{
updateMask();
updateEnabledBorders();
m_strutsTimer.start(STRUTSTIMERDELAY);
PlasmaQuick::ContainmentView::moveEvent(ev);
}

Loading…
Cancel
Save