summaryrefslogtreecommitdiffstats
path: root/src/manager-lib/fakeapplicationmanagerwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/manager-lib/fakeapplicationmanagerwindow.cpp')
-rw-r--r--src/manager-lib/fakeapplicationmanagerwindow.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/manager-lib/fakeapplicationmanagerwindow.cpp b/src/manager-lib/fakeapplicationmanagerwindow.cpp
index c6a8a736..6a8c6b87 100644
--- a/src/manager-lib/fakeapplicationmanagerwindow.cpp
+++ b/src/manager-lib/fakeapplicationmanagerwindow.cpp
@@ -74,6 +74,7 @@ FakeApplicationManagerWindow::FakeApplicationManagerWindow(QQuickItem *parent)
, m_windowProperties(new QObject)
{
setFlag(ItemHasContents);
+ setClip(true);
connect(this, &QQuickItem::visibleChanged, this, &FakeApplicationManagerWindow::onVisibleChanged);
m_windowProperties.data()->installEventFilter(this);
@@ -97,8 +98,13 @@ void FakeApplicationManagerWindow::setFakeVisible(bool visible)
if (visible != m_fakeVisible) {
m_fakeVisible = visible;
setVisible(visible);
- if (m_surfaceItem)
+ if (m_surfaceItem) {
m_surfaceItem->setVisible(visible);
+ if (m_runtime && !visible)
+ m_runtime->removeWindow(m_surfaceItem);
+ } else {
+ visibleChanged();
+ }
}
}
@@ -246,7 +252,7 @@ void FakeApplicationManagerWindow::componentComplete()
void FakeApplicationManagerWindow::onVisibleChanged()
{
- if (m_runtime && isVisible())
+ if (m_runtime && isVisible() && !m_surfaceItem)
m_runtime->addWindow(this);
}