diff --git a/app/view/view.cpp b/app/view/view.cpp index 095194a1b..b181d515b 100644 --- a/app/view/view.cpp +++ b/app/view/view.cpp @@ -1044,6 +1044,7 @@ void View::applyActivitiesToWindows() m_windowsTracker->setWindowOnActivities(*this, runningActivities); + //! config windows if (m_configView) { m_windowsTracker->setWindowOnActivities(*m_configView, runningActivities); @@ -1054,12 +1055,30 @@ void View::applyActivitiesToWindows() } } + //! hidden windows if (m_visibility->supportsKWinEdges()) { m_visibility->applyActivitiesToHiddenWindows(runningActivities); } } } +void View::showHiddenViewFromActivityStopping() +{ + if (m_layout && m_visibility && !inDelete() && !isVisible() && !m_visibility->isHidden()) { + show(); + + if (m_effects) { + m_effects->updateEnabledBorders(); + } + + //qDebug() << "View:: Enforce reshow from timer 1..."; + emit forcedShown(); + } else if (m_layout && isVisible()) { + m_inDelete = false; + //qDebug() << "View:: No needed reshow from timer 1..."; + } +} + Layout::GenericLayout *View::layout() const { return m_layout; @@ -1110,6 +1129,7 @@ void View::setLayout(Layout::GenericLayout *layout) if (m_layout && m_visibility) { setActivities(m_layout->appliedActivities()); applyActivitiesToWindows(); + showHiddenViewFromActivityStopping(); qDebug() << "DOCK VIEW FROM LAYOUT (currentActivityChanged) ::: " << m_layout->name() << " - activities: " << m_activities; } }); @@ -1153,30 +1173,14 @@ void View::setLayout(Layout::GenericLayout *layout) connectionsLayout << connect(&m_visibleHackTimer1, &QTimer::timeout, this, [&]() { applyActivitiesToWindows(); + showHiddenViewFromActivityStopping(); emit activitiesChanged(); - - if (m_layout && !inDelete() & !isVisible()) { - show(); - //qDebug() << "View:: Enforce reshow from timer 1..."; - emit forcedShown(); - } else if (m_layout && isVisible()){ - m_inDelete = false; - //qDebug() << "View:: No needed reshow from timer 1..."; - } }); connectionsLayout << connect(&m_visibleHackTimer2, &QTimer::timeout, this, [&]() { applyActivitiesToWindows(); + showHiddenViewFromActivityStopping(); emit activitiesChanged(); - - if (m_layout && !inDelete() & !isVisible()) { - show(); - //qDebug() << "View:: Enforce reshow from timer 1..."; - emit forcedShown(); - } else if (m_layout && isVisible()){ - m_inDelete = false; - //qDebug() << "View:: No needed reshow from timer 1..."; - } }); //! END OF KWIN HACK diff --git a/app/view/view.h b/app/view/view.h index c29e9cc1d..660cb4688 100644 --- a/app/view/view.h +++ b/app/view/view.h @@ -347,6 +347,9 @@ private slots: void topViewAlwaysOnTop(); void verticalUnityViewHasFocus(); + //!workround for when kwin hides view when an activity is closing + void showHiddenViewFromActivityStopping(); + void restoreConfig(); void saveConfig(); diff --git a/containment/package/contents/ui/applet/AppletItem.qml b/containment/package/contents/ui/applet/AppletItem.qml index 20513d9d0..b6a1f7340 100644 --- a/containment/package/contents/ui/applet/AppletItem.qml +++ b/containment/package/contents/ui/applet/AppletItem.qml @@ -41,6 +41,9 @@ Item { width: isInternalViewSplitter && !root.inConfigureAppletsMode ? 0 : computeWidth height: isInternalViewSplitter && !root.inConfigureAppletsMode ? 0 : computeHeight + //any applets that exceed their limits should not take events from their surrounding applets + clip: true + signal mousePressed(int x, int y, int button); signal mouseReleased(int x, int y, int button); diff --git a/plasmoid/package/contents/ui/taskslayout/ScrollableList.qml b/plasmoid/package/contents/ui/taskslayout/ScrollableList.qml index 2808eae8c..af1f6060b 100644 --- a/plasmoid/package/contents/ui/taskslayout/ScrollableList.qml +++ b/plasmoid/package/contents/ui/taskslayout/ScrollableList.qml @@ -25,7 +25,7 @@ import org.kde.latte.core 0.2 as LatteCore Flickable{ id: flickableContainer - clip: root.screenGeometry && contentsExceed + clip: false flickableDirection: plasmoid.formFactor === PlasmaCore.Types.Horizontal ? Flickable.HorizontalFlick : Flickable.VerticalFlick interactive: false