mirror of
https://github.com/KDE/latte-dock.git
synced 2025-08-27 09:49:28 +03:00
do not update struts during location change
This commit is contained in:
@ -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) {
|
||||
|
Reference in New Issue
Block a user