diff --git a/autotests/test_screen_edges.cpp b/autotests/test_screen_edges.cpp --- a/autotests/test_screen_edges.cpp +++ b/autotests/test_screen_edges.cpp @@ -918,6 +918,9 @@ setPos(QPoint(0, 50)); QCOMPARE(s->isEntered(&event), false); QVERIFY(approachingSpy.isEmpty()); + // let's also verify the check + s->check(QPoint(0, 50), QDateTime::currentDateTime(), false); + QVERIFY(approachingSpy.isEmpty()); s->gestureRecognizer()->startSwipeGesture(QPoint(0, 50)); QCOMPARE(approachingSpy.count(), 1); diff --git a/plugins/qpa/window.cpp b/plugins/qpa/window.cpp --- a/plugins/qpa/window.cpp +++ b/plugins/qpa/window.cpp @@ -151,6 +151,9 @@ void Window::createFBO() { const QRect &r = geometry(); + if (m_contentFBO && r.size().isEmpty()) { + return; + } m_contentFBO.reset(new QOpenGLFramebufferObject(r.width(), r.height(), QOpenGLFramebufferObject::CombinedDepthStencil)); if (!m_contentFBO->isValid()) { qCWarning(KWIN_QPA) << "Content FBO is not valid"; diff --git a/screenedge.cpp b/screenedge.cpp --- a/screenedge.cpp +++ b/screenedge.cpp @@ -1339,6 +1339,9 @@ if (!(*it)->isReserved()) { continue; } + if (!(*it)->activatesForPointer()) { + continue; + } if ((*it)->approachGeometry().contains(pos)) { (*it)->startApproaching(); }