diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) set(QT_MIN_VERSION "5.5.0") -set(KF5_MIN_VERSION "5.23.0") +set(KF5_MIN_VERSION "5.24.0") set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} ) diff --git a/autotests/wayland/plasma_surface_test.cpp b/autotests/wayland/plasma_surface_test.cpp --- a/autotests/wayland/plasma_surface_test.cpp +++ b/autotests/wayland/plasma_surface_test.cpp @@ -147,6 +147,7 @@ QTest::newRow("Panel") << PlasmaShellSurface::Role::Panel << true; QTest::newRow("OSD") << PlasmaShellSurface::Role::OnScreenDisplay << true; QTest::newRow("Normal") << PlasmaShellSurface::Role::Normal << false; + QTest::newRow("Notification") << PlasmaShellSurface::Role::Notification << true; } void PlasmaSurfaceTest::testRoleOnAllDesktops() @@ -204,6 +205,7 @@ QEXPECT_FAIL("Desktop", "PS before WS not supported", Continue); QEXPECT_FAIL("Panel", "PS before WS not supported", Continue); QEXPECT_FAIL("OSD", "PS before WS not supported", Continue); + QEXPECT_FAIL("Notification", "PS before WS not supported", Continue); QCOMPARE(c->isOnAllDesktops(), expectedOnAllDesktops); } @@ -217,6 +219,7 @@ QTest::newRow("Panel") << PlasmaShellSurface::Role::Panel << true << false; QTest::newRow("OSD") << PlasmaShellSurface::Role::OnScreenDisplay << false << false; QTest::newRow("Normal") << PlasmaShellSurface::Role::Normal << true << true; + QTest::newRow("Notification") << PlasmaShellSurface::Role::Notification << false << false; } void PlasmaSurfaceTest::testAcceptsFocus() diff --git a/shell_client.cpp b/shell_client.cpp --- a/shell_client.cpp +++ b/shell_client.cpp @@ -734,7 +734,8 @@ return false; } if (m_plasmaShellSurface) { - if (m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::OnScreenDisplay) { + if (m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::OnScreenDisplay || + m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::Notification) { return false; } } @@ -893,14 +894,17 @@ case PlasmaShellSurfaceInterface::Role::OnScreenDisplay: type = NET::OnScreenDisplay; break; + case PlasmaShellSurfaceInterface::Role::Notification: + type = NET::Notification; + break; case PlasmaShellSurfaceInterface::Role::Normal: default: type = NET::Normal; break; } if (type != m_windowType) { m_windowType = type; - if (m_windowType == NET::Desktop || type == NET::Dock || type == NET::OnScreenDisplay) { + if (m_windowType == NET::Desktop || type == NET::Dock || type == NET::OnScreenDisplay || type == NET::Notification) { setOnAllDesktops(true); } workspace()->updateClientArea();