do not update struts during location change

pull/2/head
Michail Vourlakos 7 years ago
parent dcbc720425
commit c2e72b7f67

@ -1443,6 +1443,11 @@ void DockView::moveToLayout(QString layoutName)
}
}
bool DockView::inLocationChangeAnimation()
{
return ((m_goToLocation != Plasma::Types::Floating) || (m_moveToLayout != "") || m_goToScreen);
}
void DockView::hideDockDuringLocationChange(int goToLocation)
{
m_goToLocation = static_cast<Plasma::Types::Location>(goToLocation);

@ -171,6 +171,8 @@ public:
QRect absGeometry() const;
QRect screenGeometry() const;
bool inLocationChangeAnimation();
Plasma::FrameSvg::EnabledBorders enabledBorders() const;
QString currentScreen() const;

@ -125,11 +125,10 @@ inline void VisibilityManagerPrivate::setMode(Dock::Visibility mode)
});
connections[1] = connect(dockView, &DockView::inEditModeChanged
, this, [&]() {
if (!dockView->inEditMode() && view->screen())
if (!dockView->inEditMode() && !dockView->inLocationChangeAnimation() && view->screen())
wm->setDockStruts(*view, dockGeometry, view->containment()->location());
});
if (dockCorona && dockCorona->layoutManager()->memoryUsage() == Dock::MultipleLayouts) {
connections[2] = connect(dockCorona->activitiesConsumer(), &KActivities::Consumer::currentActivityChanged, this, [&]() {
updateStrutsBasedOnLayoutsAndActivities();
@ -204,7 +203,7 @@ inline void VisibilityManagerPrivate::setMode(Dock::Visibility mode)
void VisibilityManagerPrivate::updateStrutsBasedOnLayoutsAndActivities()
{
bool multipleLayoutsAndCurrent = (dockCorona->layoutManager()->memoryUsage() == Dock::MultipleLayouts
&& dockView->managedLayout()
&& dockView->managedLayout() && !dockView->inLocationChangeAnimation()
&& dockView->managedLayout()->name() == dockCorona->layoutManager()->currentLayoutName());
if (dockCorona->layoutManager()->memoryUsage() == Dock::SingleLayout || multipleLayoutsAndCurrent) {

Loading…
Cancel
Save