diff -pruN 5.94.0-1/autotests/kmanagerselectiontest.cpp 5.96.0-1/autotests/kmanagerselectiontest.cpp
--- 5.94.0-1/autotests/kmanagerselectiontest.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/kmanagerselectiontest.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -8,6 +8,7 @@
 */
 
 #include "kmanagerselectiontest.h"
+#include "cptr_p.h"
 
 #include <QSignalSpy>
 #include <kselectionowner.h>
@@ -28,7 +29,7 @@ void KManagerSelectionTest::xSync()
     xcb_connection_t *c = QX11Info::connection();
     const xcb_get_input_focus_cookie_t cookie = xcb_get_input_focus(c);
     xcb_generic_error_t *error = nullptr;
-    QScopedPointer<xcb_get_input_focus_reply_t, QScopedPointerPodDeleter> sync(xcb_get_input_focus_reply(c, cookie, &error));
+    UniqueCPointer<xcb_get_input_focus_reply_t> sync(xcb_get_input_focus_reply(c, cookie, &error));
     if (error) {
         free(error);
     }
diff -pruN 5.94.0-1/autotests/kstartupinfo_unittest.cpp 5.96.0-1/autotests/kstartupinfo_unittest.cpp
--- 5.94.0-1/autotests/kstartupinfo_unittest.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/kstartupinfo_unittest.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -20,6 +20,8 @@
 
 #include <xcb/xcb.h>
 
+#include "cptr_p.h"
+
 Q_DECLARE_METATYPE(KStartupInfoId)
 Q_DECLARE_METATYPE(KStartupInfoData)
 
@@ -117,7 +119,7 @@ static void doSync()
     auto *c = QX11Info::connection();
     const auto cookie = xcb_get_input_focus(c);
     xcb_generic_error_t *error = nullptr;
-    QScopedPointer<xcb_get_input_focus_reply_t, QScopedPointerPodDeleter> sync(xcb_get_input_focus_reply(c, cookie, &error));
+    UniqueCPointer<xcb_get_input_focus_reply_t> sync(xcb_get_input_focus_reply(c, cookie, &error));
     if (error) {
         free(error);
     }
diff -pruN 5.94.0-1/autotests/kwindoweffectstest.cpp 5.96.0-1/autotests/kwindoweffectstest.cpp
--- 5.94.0-1/autotests/kwindoweffectstest.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/kwindoweffectstest.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -18,6 +18,8 @@
 #include <qtest_widgets.h>
 #include <xcb/xcb.h>
 
+#include "cptr_p.h"
+
 Q_DECLARE_METATYPE(KWindowEffects::SlideFromLocation)
 Q_DECLARE_METATYPE(KWindowEffects::Effect)
 
@@ -63,8 +65,8 @@ private:
 #endif
     xcb_atom_t m_thumbnails;
     xcb_atom_t m_blur;
-    QScopedPointer<QWindow> m_window;
-    QScopedPointer<QWidget> m_widget;
+    std::unique_ptr<QWindow> m_window;
+    std::unique_ptr<QWidget> m_widget;
 };
 
 void KWindowEffectsTest::initTestCase()
@@ -90,8 +92,8 @@ void KWindowEffectsTest::getHelperAtom(c
     xcb_connection_t *c = QX11Info::connection();
     xcb_intern_atom_cookie_t atomCookie = xcb_intern_atom_unchecked(c, false, name.length(), name.constData());
 
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> reply(xcb_intern_atom_reply(c, atomCookie, nullptr));
-    QVERIFY(!reply.isNull());
+    UniqueCPointer<xcb_intern_atom_reply_t> reply(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    QVERIFY(reply);
     *atom = reply->atom;
 }
 
@@ -111,7 +113,7 @@ void KWindowEffectsTest::testSlideWindow
     QFETCH(int, offset);
     QFETCH(KWindowEffects::SlideFromLocation, location);
 
-    KWindowEffects::slideWindow(m_window.data(), location, offset);
+    KWindowEffects::slideWindow(m_window.get(), location, offset);
     performSlideWindowTest(m_window->winId(), offset, location);
 }
 
@@ -119,11 +121,11 @@ void KWindowEffectsTest::testSlideWindow
 {
     xcb_window_t window = m_window->winId();
     // first install the atom
-    KWindowEffects::slideWindow(m_window.data(), KWindowEffects::TopEdge, 0);
+    KWindowEffects::slideWindow(m_window.get(), KWindowEffects::TopEdge, 0);
     performSlideWindowTest(window, 0, KWindowEffects::TopEdge);
 
     // now delete it
-    KWindowEffects::slideWindow(m_window.data(), KWindowEffects::NoEdge, 0);
+    KWindowEffects::slideWindow(m_window.get(), KWindowEffects::NoEdge, 0);
     performSlideWindowRemoveTest(window);
 }
 
@@ -131,12 +133,12 @@ void KWindowEffectsTest::performSlideWin
 {
     xcb_connection_t *c = QX11Info::connection();
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(c, false, window, m_slide, m_slide, 0, 100);
-    QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter> reply(xcb_get_property_reply(c, cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    UniqueCPointer<xcb_get_property_reply_t> reply(xcb_get_property_reply(c, cookie, nullptr));
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(2));
     QCOMPARE(reply->type, m_slide);
-    int32_t *data = static_cast<int32_t *>(xcb_get_property_value(reply.data()));
+    int32_t *data = static_cast<int32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[0], offset);
     QCOMPARE(data[1], locationToValue(location));
 }
@@ -150,8 +152,8 @@ void KWindowEffectsTest::performAtomIsRe
 {
     xcb_connection_t *c = QX11Info::connection();
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(c, false, window, atom, atom, 0, 100);
-    QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter> reply(xcb_get_property_reply(c, cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    UniqueCPointer<xcb_get_property_reply_t> reply(xcb_get_property_reply(c, cookie, nullptr));
+    QVERIFY(reply);
     QCOMPARE(reply->type, xcb_atom_t(XCB_ATOM_NONE));
 }
 
@@ -193,12 +195,12 @@ void KWindowEffectsTest::testPresentWind
 
     xcb_connection_t *c = QX11Info::connection();
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(c, false, m_window->winId(), m_presentWindows, m_presentWindows, 0, 100);
-    QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter> reply(xcb_get_property_reply(c, cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    UniqueCPointer<xcb_get_property_reply_t> reply(xcb_get_property_reply(c, cookie, nullptr));
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(1));
     QCOMPARE(reply->type, m_presentWindows);
-    int32_t *data = static_cast<int32_t *>(xcb_get_property_value(reply.data()));
+    int32_t *data = static_cast<int32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[0], desktop);
 }
 #endif
@@ -210,8 +212,8 @@ void KWindowEffectsTest::testPresentWind
 
     xcb_connection_t *c = QX11Info::connection();
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(c, false, m_window->winId(), m_presentWindowsGroup, m_presentWindowsGroup, 0, 100);
-    QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter> reply(xcb_get_property_reply(c, cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    UniqueCPointer<xcb_get_property_reply_t> reply(xcb_get_property_reply(c, cookie, nullptr));
+    QVERIFY(reply);
     QCOMPARE(reply->type, xcb_atom_t(XCB_ATOM_NONE));
 }
 #endif
@@ -278,12 +280,12 @@ void KWindowEffectsTest::performWindowsO
 {
     xcb_connection_t *c = QX11Info::connection();
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(c, false, m_window->winId(), atom, atom, 0, 100);
-    QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter> reply(xcb_get_property_reply(c, cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    UniqueCPointer<xcb_get_property_reply_t> reply(xcb_get_property_reply(c, cookie, nullptr));
+    QVERIFY(reply);
     QCOMPARE(reply->type, atom);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(windows.size()));
-    int32_t *data = static_cast<int32_t *>(xcb_get_property_value(reply.data()));
+    int32_t *data = static_cast<int32_t *>(xcb_get_property_value(reply.get()));
     for (int i = 0; i < windows.size(); ++i) {
         QCOMPARE(data[i], int32_t(windows.at(i)));
     }
@@ -306,15 +308,15 @@ void KWindowEffectsTest::testBlur()
 {
     QFETCH(QRegion, blur);
 
-    KWindowEffects::enableBlurBehind(m_window.data(), true, blur);
+    KWindowEffects::enableBlurBehind(m_window.get(), true, blur);
     xcb_connection_t *c = QX11Info::connection();
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(c, false, m_window->winId(), m_blur, XCB_ATOM_CARDINAL, 0, 100);
-    QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter> reply(xcb_get_property_reply(c, cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    UniqueCPointer<xcb_get_property_reply_t> reply(xcb_get_property_reply(c, cookie, nullptr));
+    QVERIFY(reply);
     QCOMPARE(reply->type, xcb_atom_t(XCB_ATOM_CARDINAL));
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(blur.rectCount() * 4));
-    uint32_t *data = static_cast<uint32_t *>(xcb_get_property_value(reply.data()));
+    uint32_t *data = static_cast<uint32_t *>(xcb_get_property_value(reply.get()));
     int dataOffset = 0;
     for (const QRect &rect : blur) {
         QCOMPARE(data[dataOffset++], uint32_t(rect.x()));
@@ -326,19 +328,19 @@ void KWindowEffectsTest::testBlur()
 
 void KWindowEffectsTest::testBlurDisable()
 {
-    KWindowEffects::enableBlurBehind(m_window.data(), false);
+    KWindowEffects::enableBlurBehind(m_window.get(), false);
     performAtomIsRemoveTest(m_window->winId(), m_blur);
 
-    KWindowEffects::enableBlurBehind(m_window.data(), true);
+    KWindowEffects::enableBlurBehind(m_window.get(), true);
     // verify that it got added
     xcb_connection_t *c = QX11Info::connection();
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(c, false, m_window->winId(), m_blur, XCB_ATOM_CARDINAL, 0, 100);
-    QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter> reply(xcb_get_property_reply(c, cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    UniqueCPointer<xcb_get_property_reply_t> reply(xcb_get_property_reply(c, cookie, nullptr));
+    QVERIFY(reply);
     QCOMPARE(reply->type, xcb_atom_t(XCB_ATOM_CARDINAL));
 
     // and disable
-    KWindowEffects::enableBlurBehind(m_window.data(), false);
+    KWindowEffects::enableBlurBehind(m_window.get(), false);
     performAtomIsRemoveTest(m_window->winId(), m_blur);
 }
 
@@ -349,22 +351,22 @@ void KWindowEffectsTest::testMarkAsDashb
     // should not yet be set
     xcb_connection_t *c = QX11Info::connection();
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(c, false, m_window->winId(), XCB_ATOM_WM_CLASS, XCB_ATOM_STRING, 0, 100);
-    QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter> reply(xcb_get_property_reply(c, cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    UniqueCPointer<xcb_get_property_reply_t> reply(xcb_get_property_reply(c, cookie, nullptr));
+    QVERIFY(reply);
     QCOMPARE(reply->type, xcb_atom_t(XCB_ATOM_STRING));
     QCOMPARE(reply->format, uint8_t(8));
-    char *data = static_cast<char *>(xcb_get_property_value(reply.data()));
+    char *data = static_cast<char *>(xcb_get_property_value(reply.get()));
     QVERIFY(QByteArray(data) != className);
 
     // now mark as dashboard
     KWindowEffects::markAsDashboard(m_window->winId());
     cookie = xcb_get_property_unchecked(c, false, m_window->winId(), XCB_ATOM_WM_CLASS, XCB_ATOM_STRING, 0, 100);
     reply.reset(xcb_get_property_reply(c, cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->type, xcb_atom_t(XCB_ATOM_STRING));
     QCOMPARE(reply->format, uint8_t(8));
     QCOMPARE(reply->value_len, uint32_t(19));
-    data = static_cast<char *>(xcb_get_property_value(reply.data()));
+    data = static_cast<char *>(xcb_get_property_value(reply.get()));
     QCOMPARE(QByteArray(data), className);
     data = data + 10;
     QCOMPARE(QByteArray(data), className);
@@ -421,8 +423,8 @@ void KWindowEffectsTest::testEffectAvail
     QFETCH(QByteArray, propertyName);
     xcb_connection_t *c = QX11Info::connection();
     xcb_intern_atom_cookie_t atomCookie = xcb_intern_atom_unchecked(c, false, propertyName.length(), propertyName.constData());
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
-    QVERIFY(!atom.isNull());
+    UniqueCPointer<xcb_intern_atom_reply_t> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    QVERIFY(atom);
     unsigned char dummy = 0;
     xcb_change_property(c, XCB_PROP_MODE_REPLACE, QX11Info::appRootWindow(), atom->atom, atom->atom, 8, 1, &dummy);
     xcb_flush(c);
diff -pruN 5.94.0-1/autotests/kwindowinfox11test.cpp 5.96.0-1/autotests/kwindowinfox11test.cpp
--- 5.94.0-1/autotests/kwindowinfox11test.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/kwindowinfox11test.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -69,7 +69,7 @@ private:
     bool waitForWindow(QSignalSpy &spy, WId winId, NET::Properties property, NET::Properties2 properties2 = NET::Properties2()) const;
     bool verifyMinimized(WId window) const;
 
-    QScopedPointer<QWidget> window;
+    std::unique_ptr<QWidget> window;
 };
 
 void KWindowInfoX11Test::initTestCase()
@@ -123,7 +123,7 @@ void KWindowInfoX11Test::init()
 {
     // create the window and ensure it has been managed
     window.reset(new QWidget());
-    showWidget(window.data());
+    showWidget(window.get());
 }
 
 void KWindowInfoX11Test::showWidget(QWidget *window)
@@ -156,7 +156,7 @@ void KWindowInfoX11Test::showWidget(QWid
 void KWindowInfoX11Test::cleanup()
 {
     // we hide the window and wait till it is gone so that we have a clean state in next test
-    if (!window.isNull() && window->isVisible()) {
+    if (window && window->isVisible()) {
         WId id = window->winId();
         QSignalSpy spy(KWindowSystem::self(), SIGNAL(windowRemoved(WId)));
         window->hide();
@@ -408,6 +408,7 @@ void KWindowInfoX11Test::testWindowType_
     QTest::newRow("DNDIcon")            << NET::DNDIconMask      << NET::DNDIcon      << NET::DNDIcon;
     QTest::newRow("OnScreenDisplay")    << NET::OnScreenDisplayMask << NET::OnScreenDisplay << NET::OnScreenDisplay;
     QTest::newRow("CriticalNotification") << NET::CriticalNotificationMask << NET::CriticalNotification << NET::CriticalNotification;
+    QTest::newRow("AppletPopup")        << NET::AppletPopupMask  << NET::AppletPopup  << NET::AppletPopup;
 
     // incorrect masks
     QTest::newRow("desktop-unknown")      << NET::NormalMask << NET::Desktop      << NET::Unknown;
@@ -427,6 +428,7 @@ void KWindowInfoX11Test::testWindowType_
     QTest::newRow("DNDIcon-unknown")      << NET::NormalMask << NET::DNDIcon      << NET::Unknown;
     QTest::newRow("OnScreenDisplay-unknown") << NET::NormalMask << NET::OnScreenDisplay << NET::Unknown;
     QTest::newRow("CriticalNotification-unknown") << NET::NormalMask << NET::CriticalNotification << NET::Unknown;
+    QTest::newRow("AppletPopup-unknown")  << NET::NormalMask << NET::AppletPopup  << NET::Unknown;
     // clang-format on
 }
 
@@ -667,9 +669,9 @@ void KWindowInfoX11Test::testTransientFo
     QCOMPARE(info.transientFor(), WId(0));
 
     // let's create a second window
-    QScopedPointer<QWidget> window2(new QWidget());
+    std::unique_ptr<QWidget> window2(new QWidget());
     window2->show();
-    QVERIFY(QTest::qWaitForWindowExposed(window2.data()));
+    QVERIFY(QTest::qWaitForWindowExposed(window2.get()));
 
     // update the transient for of window1 to window2
     const uint32_t id = window2->winId();
diff -pruN 5.94.0-1/autotests/kwindowsystem_platform_wayland_test.cpp 5.96.0-1/autotests/kwindowsystem_platform_wayland_test.cpp
--- 5.94.0-1/autotests/kwindowsystem_platform_wayland_test.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/kwindowsystem_platform_wayland_test.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ private Q_SLOTS:
     void testWithHelper();
 
 private:
-    QScopedPointer<QProcess> m_westonProcess;
+    std::unique_ptr<QProcess> m_westonProcess;
 };
 
 void TestKWindowsystemPlatformWayland::initTestCase()
@@ -46,8 +46,8 @@ void TestKWindowsystemPlatformWayland::i
         return;
     }
 
-    QScopedPointer<QFileSystemWatcher> socketWatcher(new QFileSystemWatcher(QStringList({runtimeDir.absolutePath()})));
-    QSignalSpy socketSpy(socketWatcher.data(), &QFileSystemWatcher::directoryChanged);
+    std::unique_ptr<QFileSystemWatcher> socketWatcher(new QFileSystemWatcher(QStringList({runtimeDir.absolutePath()})));
+    QSignalSpy socketSpy(socketWatcher.get(), &QFileSystemWatcher::directoryChanged);
     QVERIFY(socketSpy.isValid());
 
     // limit to max of 10 waits
@@ -61,7 +61,7 @@ void TestKWindowsystemPlatformWayland::i
 
 void TestKWindowsystemPlatformWayland::cleanupTestCase()
 {
-    if (m_westonProcess.isNull()) {
+    if (!m_westonProcess) {
         return;
     }
     m_westonProcess->terminate();
@@ -76,14 +76,14 @@ void TestKWindowsystemPlatformWayland::t
     QString processName = QFINDTESTDATA("kwindowsystem_platform_wayland_helper");
     QVERIFY(!processName.isEmpty());
 
-    QScopedPointer<QProcess> helper(new QProcess);
+    QProcess helper;
     QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
     env.insert(QStringLiteral("WAYLAND_DISPLAY"), QStringLiteral("kwindowsystem-platform-wayland-0"));
-    helper->setProgram(processName);
-    helper->setProcessEnvironment(env);
-    helper->start();
-    QVERIFY(helper->waitForFinished());
-    QCOMPARE(helper->exitCode(), 0);
+    helper.setProgram(processName);
+    helper.setProcessEnvironment(env);
+    helper.start();
+    QVERIFY(helper.waitForFinished());
+    QCOMPARE(helper.exitCode(), 0);
 }
 
 QTEST_GUILESS_MAIN(TestKWindowsystemPlatformWayland)
diff -pruN 5.94.0-1/autotests/kwindowsystemx11test.cpp 5.96.0-1/autotests/kwindowsystemx11test.cpp
--- 5.94.0-1/autotests/kwindowsystemx11test.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/kwindowsystemx11test.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -52,7 +52,7 @@ void KWindowSystemX11Test::testActiveWin
     qRegisterMetaType<WId>("WId");
     QSignalSpy spy(KWindowSystem::self(), SIGNAL(activeWindowChanged(WId)));
 
-    QScopedPointer<QWidget> widget(new QWidget);
+    std::unique_ptr<QWidget> widget(new QWidget);
     widget->show();
 
     QVERIFY(spy.wait());
@@ -66,9 +66,9 @@ void KWindowSystemX11Test::testWindowAdd
     qRegisterMetaType<WId>("WId");
     QSignalSpy spy(KWindowSystem::self(), SIGNAL(windowAdded(WId)));
     QSignalSpy stackingOrderSpy(KWindowSystem::self(), SIGNAL(stackingOrderChanged()));
-    QScopedPointer<QWidget> widget(new QWidget);
+    std::unique_ptr<QWidget> widget(new QWidget);
     widget->show();
-    QVERIFY(QTest::qWaitForWindowExposed(widget.data()));
+    QVERIFY(QTest::qWaitForWindowExposed(widget.get()));
     QVERIFY(spy.count() > 0);
     bool hasWId = false;
     for (auto it = spy.constBegin(); it != spy.constEnd(); ++it) {
@@ -89,9 +89,9 @@ void KWindowSystemX11Test::testWindowAdd
 void KWindowSystemX11Test::testWindowRemoved()
 {
     qRegisterMetaType<WId>("WId");
-    QScopedPointer<QWidget> widget(new QWidget);
+    std::unique_ptr<QWidget> widget(new QWidget);
     widget->show();
-    QVERIFY(QTest::qWaitForWindowExposed(widget.data()));
+    QVERIFY(QTest::qWaitForWindowExposed(widget.get()));
     QVERIFY(KWindowSystem::hasWId(widget->winId()));
 
     QSignalSpy spy(KWindowSystem::self(), SIGNAL(windowRemoved(WId)));
diff -pruN 5.94.0-1/autotests/kxmessages_unittest.cpp 5.96.0-1/autotests/kxmessages_unittest.cpp
--- 5.94.0-1/autotests/kxmessages_unittest.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/kxmessages_unittest.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -68,7 +68,7 @@ void KXMessages_UnitTest::testStart()
     QFETCH(KXMessages_UnitTest::BroadcastType, broadcastType);
     QFETCH(KXMessages_UnitTest::ReceiverType, receiverType);
     const QByteArray type = "kxmessage_unittest";
-    QScopedPointer<KXMessages> receiver;
+    std::unique_ptr<KXMessages> receiver;
     switch (receiverType) {
     case KXMessages_UnitTest::ReceiverTypeDefault:
         receiver.reset(new KXMessages(type));
@@ -85,7 +85,7 @@ void KXMessages_UnitTest::testStart()
     // despite the internal splitting.
     QString message;
     for (int i = 1; i < 50; ++i) {
-        QSignalSpy spy(receiver.data(), SIGNAL(gotMessage(QString)));
+        QSignalSpy spy(receiver.get(), SIGNAL(gotMessage(QString)));
         message += "a";
         switch (broadcastType) {
         case KXMessages_UnitTest::BroadcastMessageObject:
diff -pruN 5.94.0-1/autotests/netrootinfotestwm.cpp 5.96.0-1/autotests/netrootinfotestwm.cpp
--- 5.94.0-1/autotests/netrootinfotestwm.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/netrootinfotestwm.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -14,14 +14,7 @@
 // system
 #include <unistd.h>
 
-class Property : public QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter>
-{
-public:
-    Property(xcb_get_property_reply_t *p = nullptr)
-        : QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter>(p)
-    {
-    }
-};
+using Property = UniqueCPointer<xcb_get_property_reply_t>;
 
 Q_DECLARE_METATYPE(NET::Orientation)
 Q_DECLARE_METATYPE(NET::DesktopLayoutCorner)
@@ -63,7 +56,7 @@ private:
     }
     xcb_connection_t *m_connection;
     QVector<xcb_connection_t *> m_connections;
-    QScopedPointer<QProcess> m_xvfb;
+    std::unique_ptr<QProcess> m_xvfb;
     xcb_window_t m_supportWindow;
     xcb_window_t m_rootWindow;
 };
@@ -134,9 +127,9 @@ void NetRootInfoTestWM::init()
                       values);
     const uint32_t lowerValues[] = {XCB_STACK_MODE_BELOW};
     // we need to do the lower window with a roundtrip, otherwise NETRootInfo is not functioning
-    QScopedPointer<xcb_generic_error_t, QScopedPointerPodDeleter> error(
+    UniqueCPointer<xcb_generic_error_t> error(
         xcb_request_check(m_connection, xcb_configure_window_checked(m_connection, m_supportWindow, XCB_CONFIG_WINDOW_STACK_MODE, lowerValues)));
-    QVERIFY(error.isNull());
+    QVERIFY(!error);
 }
 
 void NetRootInfoTestWM::cleanup()
@@ -157,14 +150,14 @@ void NetRootInfoTestWM::cleanup()
 void NetRootInfoTestWM::waitForPropertyChange(NETRootInfo *info, xcb_atom_t atom, NET::Property prop, NET::Property2 prop2)
 {
     while (true) {
-        KXUtils::ScopedCPointer<xcb_generic_event_t> event(xcb_wait_for_event(connection()));
-        if (event.isNull()) {
+        UniqueCPointer<xcb_generic_event_t> event(xcb_wait_for_event(connection()));
+        if (!event) {
             break;
         }
         if ((event->response_type & ~0x80) != XCB_PROPERTY_NOTIFY) {
             continue;
         }
-        xcb_property_notify_event_t *pe = reinterpret_cast<xcb_property_notify_event_t *>(event.data());
+        xcb_property_notify_event_t *pe = reinterpret_cast<xcb_property_notify_event_t *>(event.get());
         if (pe->window != m_rootWindow) {
             continue;
         }
@@ -173,7 +166,7 @@ void NetRootInfoTestWM::waitForPropertyC
         }
         NET::Properties dirty;
         NET::Properties2 dirty2;
-        info->event(event.data(), &dirty, &dirty2);
+        info->event(event.get(), &dirty, &dirty2);
         if (prop != 0) {
             QVERIFY(dirty & prop);
         }
@@ -222,7 +215,7 @@ void NetRootInfoTestWM::testSupported()
     NETRootInfo
         rootInfo(connection(), m_supportWindow, s_wmName, NET::WMAllProperties, NET::AllTypesMask, NET::States(~0u), NET::WM2AllProperties, NET::Actions(~0u));
     int count = 0;
-    for (int i = 0; i < 33; ++i) {
+    for (int i = 0; i < 34; ++i) {
         if (i == 12) {
             continue;
         }
@@ -233,6 +226,10 @@ void NetRootInfoTestWM::testSupported()
         QVERIFY(rootInfo.isSupported(NET::Property2(1 << i)));
         count++;
     }
+
+    QVERIFY(rootInfo.isSupported(NET::WM2GTKShowWindowMenu));
+    count++;
+
     for (int i = 0; i < 17; ++i) {
         QVERIFY(rootInfo.isSupported(NET::WindowTypeMask(1 << i)));
         count++;
@@ -270,27 +267,27 @@ void NetRootInfoTestWM::testSupported()
     xcb_get_property_cookie_t wmNameCookie = xcb_get_property_unchecked(connection(), false, m_supportWindow, wmName, utf8String, 0, 16);
 
     Property supportedReply(xcb_get_property_reply(connection(), supportedCookie, nullptr));
-    QVERIFY(!supportedReply.isNull());
+    QVERIFY(supportedReply);
     QCOMPARE(supportedReply->format, uint8_t(32));
     QCOMPARE(supportedReply->value_len, uint32_t(count));
     // TODO: check that the correct atoms are set?
     Property wmCheckRootReply(xcb_get_property_reply(connection(), wmCheckRootCookie, nullptr));
-    QVERIFY(!wmCheckRootReply.isNull());
+    QVERIFY(wmCheckRootReply);
     QCOMPARE(wmCheckRootReply->format, uint8_t(32));
     QCOMPARE(wmCheckRootReply->value_len, uint32_t(1));
-    QCOMPARE(reinterpret_cast<xcb_window_t *>(xcb_get_property_value(wmCheckRootReply.data()))[0], m_supportWindow);
+    QCOMPARE(reinterpret_cast<xcb_window_t *>(xcb_get_property_value(wmCheckRootReply.get()))[0], m_supportWindow);
 
     Property wmCheckSupportReply(xcb_get_property_reply(connection(), wmCheckSupportWinCookie, nullptr));
-    QVERIFY(!wmCheckSupportReply.isNull());
+    QVERIFY(wmCheckSupportReply);
     QCOMPARE(wmCheckSupportReply->format, uint8_t(32));
     QCOMPARE(wmCheckSupportReply->value_len, uint32_t(1));
-    QCOMPARE(reinterpret_cast<xcb_window_t *>(xcb_get_property_value(wmCheckSupportReply.data()))[0], m_supportWindow);
+    QCOMPARE(reinterpret_cast<xcb_window_t *>(xcb_get_property_value(wmCheckSupportReply.get()))[0], m_supportWindow);
 
     Property wmNameReply(xcb_get_property_reply(connection(), wmNameCookie, nullptr));
-    QVERIFY(!wmNameReply.isNull());
+    QVERIFY(wmNameReply);
     QCOMPARE(wmNameReply->format, uint8_t(8));
     QCOMPARE(wmNameReply->value_len, uint32_t(15));
-    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(wmNameReply.data())), s_wmName);
+    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(wmNameReply.get())), s_wmName);
 
     // disable some supported
     rootInfo.setSupported(NET::WMFrameExtents, false);
@@ -314,7 +311,7 @@ void NetRootInfoTestWM::testSupported()
     // lets get supported again
     supportedCookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), supported, XCB_ATOM_ATOM, 0, 90);
     supportedReply.reset(xcb_get_property_reply(connection(), supportedCookie, nullptr));
-    QVERIFY(!supportedReply.isNull());
+    QVERIFY(supportedReply);
     QCOMPARE(supportedReply->format, uint8_t(32));
     QCOMPARE(supportedReply->value_len, uint32_t(count - 7));
 
@@ -329,7 +326,7 @@ void NetRootInfoTestWM::testSupported()
     // lets get supported again
     supportedCookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), supported, XCB_ATOM_ATOM, 0, 90);
     supportedReply.reset(xcb_get_property_reply(connection(), supportedCookie, nullptr));
-    QVERIFY(!supportedReply.isNull());
+    QVERIFY(supportedReply);
     QCOMPARE(supportedReply->format, uint8_t(32));
     QCOMPARE(supportedReply->value_len, uint32_t(count - 9));
     NETRootInfo clientInfo(connection(), NET::Supported | NET::SupportingWMCheck);
@@ -362,10 +359,10 @@ void NetRootInfoTestWM::testClientList()
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_WINDOW, 0, 5);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(5));
-    const xcb_window_t *propWins = reinterpret_cast<xcb_window_t *>(xcb_get_property_value(reply.data()));
+    const xcb_window_t *propWins = reinterpret_cast<xcb_window_t *>(xcb_get_property_value(reply.get()));
     for (int i = 0; i < 5; ++i) {
         QCOMPARE(propWins[i], windows[i]);
     }
@@ -405,10 +402,10 @@ void NetRootInfoTestWM::testClientListSt
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_WINDOW, 0, 5);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(5));
-    const xcb_window_t *propWins = reinterpret_cast<xcb_window_t *>(xcb_get_property_value(reply.data()));
+    const xcb_window_t *propWins = reinterpret_cast<xcb_window_t *>(xcb_get_property_value(reply.get()));
     for (int i = 0; i < 5; ++i) {
         QCOMPARE(propWins[i], windows[i]);
     }
@@ -447,10 +444,10 @@ void NetRootInfoTestWM::testVirtualRoots
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_WINDOW, 0, 5);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(5));
-    const xcb_window_t *propWins = reinterpret_cast<xcb_window_t *>(xcb_get_property_value(reply.data()));
+    const xcb_window_t *propWins = reinterpret_cast<xcb_window_t *>(xcb_get_property_value(reply.get()));
     for (int i = 0; i < 5; ++i) {
         QCOMPARE(propWins[i], windows[i]);
     }
@@ -479,10 +476,10 @@ void NetRootInfoTestWM::testNumberOfDesk
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_CARDINAL, 0, 1);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(1));
-    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()))[0], uint32_t(4));
+    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()))[0], uint32_t(4));
 
     // wait for our property
     waitForPropertyChange(&rootInfo, atom, NET::NumberOfDesktops);
@@ -504,11 +501,11 @@ void NetRootInfoTestWM::testCurrentDeskt
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_CARDINAL, 0, 1);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(1));
     // note: API starts counting at 1, but property starts counting at 5, because of that subtracting one
-    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()))[0], uint32_t(5 - 1));
+    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()))[0], uint32_t(5 - 1));
 
     // wait for our property
     waitForPropertyChange(&rootInfo, atom, NET::CurrentDesktop);
@@ -536,10 +533,10 @@ void NetRootInfoTestWM::testDesktopNames
     QVERIFY(utf8String != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, utf8String, 0, 10000);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(8));
     QCOMPARE(reply->value_len, uint32_t(8));
-    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.data())), "foo\0bar");
+    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.get())), "foo\0bar");
 
     // wait for our property
     waitForPropertyChange(&rootInfo, atom, NET::DesktopNames);
@@ -567,10 +564,10 @@ void NetRootInfoTestWM::testActiveWindow
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_WINDOW, 0, 1);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(1));
-    QCOMPARE(reinterpret_cast<xcb_window_t *>(xcb_get_property_value(reply.data()))[0], activeWindow);
+    QCOMPARE(reinterpret_cast<xcb_window_t *>(xcb_get_property_value(reply.get()))[0], activeWindow);
 
     // wait for our property
     waitForPropertyChange(&rootInfo, atom, NET::ActiveWindow);
@@ -597,10 +594,10 @@ void NetRootInfoTestWM::testDesktopGeome
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_CARDINAL, 0, 2);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(2));
-    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()));
+    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[0], uint32_t(size.width));
     QCOMPARE(data[1], uint32_t(size.height));
 
@@ -645,10 +642,10 @@ void NetRootInfoTestWM::testDesktopLayou
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_CARDINAL, 0, 4);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(4));
-    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()));
+    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[0], uint32_t(orientation));
     QCOMPARE(data[1], uint32_t(columnsRows.width()));
     QCOMPARE(data[2], uint32_t(columnsRows.height()));
@@ -698,10 +695,10 @@ void NetRootInfoTestWM::testDesktopViewp
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_CARDINAL, 0, 8);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(8));
-    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()));
+    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[0], uint32_t(desktopOne.x));
     QCOMPARE(data[1], uint32_t(desktopOne.y));
     QCOMPARE(data[2], uint32_t(desktopTwo.x));
@@ -748,10 +745,10 @@ void NetRootInfoTestWM::testShowingDeskt
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_CARDINAL, 0, 1);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(1));
-    QTEST(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()))[0], "setValue");
+    QTEST(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()))[0], "setValue");
 
     // wait for our property
     waitForPropertyChange(&rootInfo, atom, NET::Property(0), NET::WM2ShowingDesktop);
@@ -804,10 +801,10 @@ void NetRootInfoTestWM::testWorkArea()
     QVERIFY(atom != XCB_ATOM_NONE);
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, rootInfo.rootWindow(), atom, XCB_ATOM_CARDINAL, 0, 16);
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr));
-    QVERIFY(!reply.isNull());
+    QVERIFY(reply);
     QCOMPARE(reply->format, uint8_t(32));
     QCOMPARE(reply->value_len, uint32_t(16));
-    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()));
+    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[0], uint32_t(desktopOne.pos.x));
     QCOMPARE(data[1], uint32_t(desktopOne.pos.y));
     QCOMPARE(data[2], uint32_t(desktopOne.size.width));
diff -pruN 5.94.0-1/autotests/nettesthelper.h 5.96.0-1/autotests/nettesthelper.h
--- 5.94.0-1/autotests/nettesthelper.h	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/nettesthelper.h	2022-07-02 16:00:50.000000000 +0000
@@ -7,20 +7,13 @@
 #define NETTESTHELPER_H
 
 #include <QByteArray>
-#include <QScopedPointer>
+#include <memory>
 #include <xcb/xcb.h>
 
+#include "cptr_p.h"
+
 namespace KXUtils
 {
-template<typename T>
-class ScopedCPointer : public QScopedPointer<T, QScopedPointerPodDeleter>
-{
-public:
-    ScopedCPointer(T *p = nullptr)
-        : QScopedPointer<T, QScopedPointerPodDeleter>(p)
-    {
-    }
-};
 
 /**
  * @brief Small helper class to fetch an intern atom through XCB.
@@ -116,8 +109,8 @@ private:
         if (m_retrieved || !m_cookie.sequence) {
             return;
         }
-        ScopedCPointer<xcb_intern_atom_reply_t> reply(xcb_intern_atom_reply(m_connection, m_cookie, nullptr));
-        if (!reply.isNull()) {
+        UniqueCPointer<xcb_intern_atom_reply_t> reply(xcb_intern_atom_reply(m_connection, m_cookie, nullptr));
+        if (reply) {
             m_atom = reply->atom;
         }
         m_retrieved = true;
diff -pruN 5.94.0-1/autotests/netwininfotestclient.cpp 5.96.0-1/autotests/netwininfotestclient.cpp
--- 5.94.0-1/autotests/netwininfotestclient.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/netwininfotestclient.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -14,14 +14,7 @@
 // system
 #include <unistd.h>
 
-class Property : public QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter>
-{
-public:
-    Property(xcb_get_property_reply_t *p = nullptr)
-        : QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter>(p)
-    {
-    }
-};
+using Property = UniqueCPointer<xcb_get_property_reply_t>;
 
 // clang-format off
 #define INFO NETWinInfo info(m_connection, m_testWindow, m_rootWindow, NET::WMAllProperties, NET::WM2AllProperties, NET::Client);
@@ -35,7 +28,7 @@ public:
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, m_testWindow, \
                                        atom, type, 0, length); \
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr)); \
-    QVERIFY(!reply.isNull()); \
+    QVERIFY(reply); \
     QCOMPARE(reply->format, uint8_t(formatSize)); \
     QCOMPARE(reply->value_len, uint32_t(length));
 
@@ -43,7 +36,7 @@ public:
     xcb_get_property_cookie_t cookieDeleted = xcb_get_property_unchecked(connection(), false, m_testWindow, \
             atom, t, 0, 1); \
     Property replyDeleted(xcb_get_property_reply(connection(), cookieDeleted, nullptr)); \
-    QVERIFY(!replyDeleted.isNull()); \
+    QVERIFY(replyDeleted); \
     QVERIFY(replyDeleted->type == XCB_ATOM_NONE);
 
 class NetWinInfoTestClient : public QObject
@@ -103,7 +96,7 @@ private:
     }
     xcb_connection_t *m_connection;
     QVector<xcb_connection_t*> m_connections;
-    QScopedPointer<QProcess> m_xvfb;
+    std::unique_ptr<QProcess> m_xvfb;
     xcb_window_t m_rootWindow;
     xcb_window_t m_testWindow;
 };
@@ -185,14 +178,14 @@ void NetWinInfoTestClient::cleanup()
 void NetWinInfoTestClient::waitForPropertyChange(NETWinInfo *info, xcb_atom_t atom, NET::Property prop, NET::Property2 prop2)
 {
     while (true) {
-        KXUtils::ScopedCPointer<xcb_generic_event_t> event(xcb_wait_for_event(connection()));
-        if (event.isNull()) {
+        UniqueCPointer<xcb_generic_event_t> event(xcb_wait_for_event(connection()));
+        if (!event) {
             break;
         }
         if ((event->response_type & ~0x80) != XCB_PROPERTY_NOTIFY) {
             continue;
         }
-        xcb_property_notify_event_t *pe = reinterpret_cast<xcb_property_notify_event_t *>(event.data());
+        xcb_property_notify_event_t *pe = reinterpret_cast<xcb_property_notify_event_t *>(event.get());
         if (pe->window != m_testWindow) {
             continue;
         }
@@ -201,7 +194,7 @@ void NetWinInfoTestClient::waitForProper
         }
         NET::Properties dirty;
         NET::Properties2 dirty2;
-        info->event(event.data(), &dirty, &dirty2);
+        info->event(event.get(), &dirty, &dirty2);
         if (prop != 0) {
             QVERIFY(dirty & prop);
         }
@@ -231,7 +224,7 @@ void NetWinInfoTestClient::testBlockComp
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 1, 32)
-    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()))[0], uint32_t(1));
+    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()))[0], uint32_t(1));
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::Property(0), NET::WM2BlockCompositing);
@@ -260,7 +253,7 @@ void NetWinInfoTestClient::testUserTime(
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 1, 32)
-    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()))[0], uint32_t(500));
+    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()))[0], uint32_t(500));
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::Property(0), NET::WM2UserTime);
@@ -282,7 +275,7 @@ void NetWinInfoTestClient::testStartupId
     QVERIFY(atom != XCB_ATOM_NONE);
     QVERIFY(utf8String != XCB_ATOM_NONE);
     GETPROP(utf8String, 3, 8)
-    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.data())), "foo");
+    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.get())), "foo");
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::Property(0), NET::WM2StartupId);
@@ -334,7 +327,7 @@ void NetWinInfoTestClient::testDesktopFi
     QVERIFY(atom != XCB_ATOM_NONE);
     QVERIFY(utf8String != XCB_ATOM_NONE);
     GETPROP(utf8String, 3, 8)
-    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.data())), "foo");
+    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.get())), "foo");
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::Property(0), NET::WM2DesktopFileName);
@@ -364,7 +357,7 @@ void NetWinInfoTestClient::testHandledIc
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 1, 32)
-    QTEST(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()))[0], "value");
+    QTEST(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()))[0], "value");
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::WMHandledIcons);
@@ -384,7 +377,7 @@ void NetWinInfoTestClient::testPid()
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 1, 32)
-    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()))[0], uint32_t(m_xvfb->processId()));
+    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()))[0], uint32_t(m_xvfb->processId()));
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::WMPid);
@@ -404,7 +397,7 @@ void NetWinInfoTestClient::performNameTe
     QVERIFY(atom != XCB_ATOM_NONE);
     QVERIFY(utf8String != XCB_ATOM_NONE);
     GETPROP(utf8String, 3, 8)
-    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.data())), "foo");
+    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.get())), "foo");
 
     // and wait for our event
     waitForPropertyChange(&info, atom, property);
@@ -469,7 +462,7 @@ void NetWinInfoTestClient::testStrut()
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 4, 32)
-    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()));
+    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[0], uint32_t(newExtents.left));
     QCOMPARE(data[1], uint32_t(newExtents.right));
     QCOMPARE(data[2], uint32_t(newExtents.top));
@@ -536,7 +529,7 @@ void NetWinInfoTestClient::testExtendedS
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 12, 32)
-    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()));
+    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[ 0], uint32_t(newExtents.left_width));
     QCOMPARE(data[ 1], uint32_t(newExtents.right_width));
     QCOMPARE(data[ 2], uint32_t(newExtents.top_width));
@@ -594,7 +587,7 @@ void NetWinInfoTestClient::testIconGeome
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 4, 32)
-    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()));
+    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[0], uint32_t(newGeo.pos.x));
     QCOMPARE(data[1], uint32_t(newGeo.pos.y));
     QCOMPARE(data[2], uint32_t(newGeo.size.width));
@@ -638,6 +631,7 @@ void NetWinInfoTestClient::testWindowTyp
     QTest::newRow("Normal")       << NET::Normal       << 1 << QByteArrayLiteral("_NET_WM_WINDOW_TYPE_NORMAL")   << QByteArray();
     QTest::newRow("OnScreenDisplay") << NET::OnScreenDisplay << 1 << QByteArrayLiteral("_KDE_NET_WM_WINDOW_TYPE_ON_SCREEN_DISPLAY") << QByteArray();
     QTest::newRow("CriticalNotification") << NET::CriticalNotification << 1 << QByteArrayLiteral("_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION") << QByteArray();
+    QTest::newRow("AppletPopup")  << NET::AppletPopup  << 1 << QByteArrayLiteral("_KDE_NET_WM_WINDOW_TYPE_APPLET_POPUP") << QByteArray();
 }
 
 void NetWinInfoTestClient::testWindowType()
@@ -660,7 +654,7 @@ void NetWinInfoTestClient::testWindowTyp
     KXUtils::Atom type1(connection(), typeAtom);
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_ATOM, length, 32)
-    xcb_atom_t *atoms = reinterpret_cast<xcb_atom_t *>(xcb_get_property_value(reply.data()));
+    xcb_atom_t *atoms = reinterpret_cast<xcb_atom_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(atoms[0], xcb_atom_t(type1));
     if (reply->value_len > 1) {
         QFETCH(QByteArray, secondaryTypeAtom);
diff -pruN 5.94.0-1/autotests/netwininfotestwm.cpp 5.96.0-1/autotests/netwininfotestwm.cpp
--- 5.94.0-1/autotests/netwininfotestwm.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/autotests/netwininfotestwm.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -18,14 +18,7 @@ Q_DECLARE_METATYPE(NET::State)
 Q_DECLARE_METATYPE(NET::States)
 Q_DECLARE_METATYPE(NET::Actions)
 
-class Property : public QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter>
-{
-public:
-    Property(xcb_get_property_reply_t *p = nullptr)
-        : QScopedPointer<xcb_get_property_reply_t, QScopedPointerPodDeleter>(p)
-    {
-    }
-};
+using Property = UniqueCPointer<xcb_get_property_reply_t>;
 
 // clang-format off
 #define INFO NETWinInfo info(m_connection, m_testWindow, m_rootWindow, NET::WMAllProperties, NET::WM2AllProperties, NET::WindowManager);
@@ -39,7 +32,7 @@ public:
     xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(connection(), false, m_testWindow, \
                                        atom, type, 0, length); \
     Property reply(xcb_get_property_reply(connection(), cookie, nullptr)); \
-    QVERIFY(!reply.isNull()); \
+    QVERIFY(reply); \
     QCOMPARE(reply->format, uint8_t(formatSize)); \
     QCOMPARE(reply->value_len, uint32_t(length));
 
@@ -47,7 +40,7 @@ public:
     xcb_get_property_cookie_t cookieDeleted = xcb_get_property_unchecked(connection(), false, m_testWindow, \
             atom, t, 0, 1); \
     Property replyDeleted(xcb_get_property_reply(connection(), cookieDeleted, nullptr)); \
-    QVERIFY(!replyDeleted.isNull()); \
+    QVERIFY(replyDeleted); \
     QVERIFY(replyDeleted->type == XCB_ATOM_NONE);
 
 class NetWinInfoTestWM : public QObject
@@ -84,7 +77,7 @@ private:
     }
     xcb_connection_t *m_connection;
     QVector<xcb_connection_t*> m_connections;
-    QScopedPointer<QProcess> m_xvfb;
+    std::unique_ptr<QProcess> m_xvfb;
     xcb_window_t m_rootWindow;
     xcb_window_t m_testWindow;
     QByteArray m_displayNumber;
@@ -169,14 +162,14 @@ void NetWinInfoTestWM::cleanup()
 void NetWinInfoTestWM::waitForPropertyChange(NETWinInfo *info, xcb_atom_t atom, NET::Property prop, NET::Property2 prop2)
 {
     while (true) {
-        KXUtils::ScopedCPointer<xcb_generic_event_t> event(xcb_wait_for_event(connection()));
-        if (event.isNull()) {
+        UniqueCPointer<xcb_generic_event_t> event(xcb_wait_for_event(connection()));
+        if (!event) {
             break;
         }
         if ((event->response_type & ~0x80) != XCB_PROPERTY_NOTIFY) {
             continue;
         }
-        xcb_property_notify_event_t *pe = reinterpret_cast<xcb_property_notify_event_t *>(event.data());
+        xcb_property_notify_event_t *pe = reinterpret_cast<xcb_property_notify_event_t *>(event.get());
         if (pe->window != m_testWindow) {
             continue;
         }
@@ -185,7 +178,7 @@ void NetWinInfoTestWM::waitForPropertyCh
         }
         NET::Properties dirty;
         NET::Properties2 dirty2;
-        info->event(event.data(), &dirty, &dirty2);
+        info->event(event.get(), &dirty, &dirty2);
         if (prop != 0) {
             QVERIFY(dirty & prop);
         }
@@ -276,7 +269,7 @@ void NetWinInfoTestWM::testAllowedAction
     QFETCH(QVector<QByteArray>, names);
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_ATOM, names.size(), 32)
-    xcb_atom_t *atoms = reinterpret_cast<xcb_atom_t *>(xcb_get_property_value(reply.data()));
+    xcb_atom_t *atoms = reinterpret_cast<xcb_atom_t *>(xcb_get_property_value(reply.get()));
     for (int i = 0; i < names.size(); ++i) {
         QVERIFY(hasAtomFlag(atoms, names.size(), names.at(i)));
     }
@@ -310,7 +303,7 @@ void NetWinInfoTestWM::testDesktop()
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 1, 32)
-    QTEST(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()))[0], "propertyDesktop");
+    QTEST(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()))[0], "propertyDesktop");
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::WMDesktop);
@@ -351,7 +344,7 @@ void NetWinInfoTestWM::testStrut(xcb_ato
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 4, 32)
-    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()));
+    uint32_t *data = reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()));
     QCOMPARE(data[0], uint32_t(newExtents.left));
     QCOMPARE(data[1], uint32_t(newExtents.right));
     QCOMPARE(data[2], uint32_t(newExtents.top));
@@ -411,7 +404,7 @@ void NetWinInfoTestWM::testOpacity()
     // compare with the X property
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_CARDINAL, 1, 32)
-    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.data()))[0], opacity);
+    QCOMPARE(reinterpret_cast<uint32_t *>(xcb_get_property_value(reply.get()))[0], opacity);
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::Property(0), NET::WM2Opacity);
@@ -489,7 +482,7 @@ void NetWinInfoTestWM::testState()
     QFETCH(QVector<QByteArray>, names);
     QVERIFY(atom != XCB_ATOM_NONE);
     GETPROP(XCB_ATOM_ATOM, names.size(), 32)
-    xcb_atom_t *atoms = reinterpret_cast<xcb_atom_t *>(xcb_get_property_value(reply.data()));
+    xcb_atom_t *atoms = reinterpret_cast<xcb_atom_t *>(xcb_get_property_value(reply.get()));
     for (int i = 0; i < names.size(); ++i) {
         QVERIFY(hasAtomFlag(atoms, names.size(), names.at(i)));
     }
@@ -514,7 +507,7 @@ void NetWinInfoTestWM::testVisibleIconNa
     QVERIFY(atom != XCB_ATOM_NONE);
     QVERIFY(utf8String != XCB_ATOM_NONE);
     GETPROP(utf8String, 3, 8)
-    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.data())), "foo");
+    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.get())), "foo");
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::WMVisibleIconName);
@@ -550,7 +543,7 @@ void NetWinInfoTestWM::testVisibleName()
     QVERIFY(atom != XCB_ATOM_NONE);
     QVERIFY(utf8String != XCB_ATOM_NONE);
     GETPROP(utf8String, 3, 8)
-    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.data())), "foo");
+    QCOMPARE(reinterpret_cast<const char *>(xcb_get_property_value(reply.get())), "foo");
 
     // and wait for our event
     waitForPropertyChange(&info, atom, NET::WMVisibleName);
@@ -601,12 +594,9 @@ void NetWinInfoTestWM::testFullscreenMon
                      XCB_EVENT_MASK_FOCUS_CHANGE | // For NotifyDetailNone
                      XCB_EVENT_MASK_EXPOSURE
     };
-    QScopedPointer<xcb_generic_error_t, QScopedPointerPodDeleter> redirectCheck(xcb_request_check(connection(),
-                                                                        xcb_change_window_attributes_checked(connection(),
-                                                                                                                m_rootWindow,
-                                                                                                                XCB_CW_EVENT_MASK,
-                                                                                                                maskValues)));
-    QVERIFY(redirectCheck.isNull());
+    UniqueCPointer<xcb_generic_error_t> redirectCheck(xcb_request_check(connection(), xcb_change_window_attributes_checked(connection(),
+                                                      m_rootWindow, XCB_CW_EVENT_MASK, maskValues)));
+    QVERIFY(!redirectCheck);
 
     KXUtils::Atom atom(connection(), QByteArrayLiteral("_NET_WM_FULLSCREEN_MONITORS"));
 
@@ -627,8 +617,8 @@ void NetWinInfoTestWM::testFullscreenMon
     MockWinInfo info(connection(), m_testWindow, m_rootWindow);
 
     while (true) {
-        KXUtils::ScopedCPointer<xcb_generic_event_t> event(xcb_wait_for_event(connection()));
-        if (event.isNull()) {
+        UniqueCPointer<xcb_generic_event_t> event(xcb_wait_for_event(connection()));
+        if (!event) {
             break;
         }
         if ((event->response_type & ~0x80) != XCB_CLIENT_MESSAGE) {
@@ -638,7 +628,7 @@ void NetWinInfoTestWM::testFullscreenMon
         NET::Properties dirtyProtocols;
         NET::Properties2 dirtyProtocols2;
         QCOMPARE(info.fullscreenMonitors().isSet(), false);
-        info.event(event.data(), &dirtyProtocols, &dirtyProtocols2);
+        info.event(event.get(), &dirtyProtocols, &dirtyProtocols2);
         QCOMPARE(info.fullscreenMonitors().isSet(), true);
         break;
     }
diff -pruN 5.94.0-1/CMakeLists.txt 5.96.0-1/CMakeLists.txt
--- 5.94.0-1/CMakeLists.txt	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/CMakeLists.txt	2022-07-02 16:00:50.000000000 +0000
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "5.94.0") # handled by release scripts
+set(KF_VERSION "5.96.0") # handled by release scripts
 project(KWindowSystem VERSION ${KF_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.93.0  NO_MODULE)
+find_package(ECM 5.96.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules")
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -22,7 +22,7 @@ include(ECMSetupVersion)
 include(ECMGenerateHeaders)
 include(CMakeFindFrameworks)
 include(ECMQtDeclareLoggingCategory)
-
+include(ECMDeprecationSettings)
 include(ECMAddQch)
 include(ECMPoQmTools)
 
@@ -82,7 +82,9 @@ endif()
 # Subdirectories
 ecm_install_po_files_as_qm(po)
 
-add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f02)
+ecm_set_disabled_deprecation_versions(
+    QT 5.15.2
+)
 
 add_subdirectory(src)
 if (BUILD_TESTING)
diff -pruN 5.94.0-1/debian/changelog 5.96.0-1/debian/changelog
--- 5.94.0-1/debian/changelog	2022-05-19 21:59:03.000000000 +0000
+++ 5.96.0-1/debian/changelog	2022-07-31 11:32:58.000000000 +0000
@@ -1,3 +1,12 @@
+kwindowsystem (5.96.0-1) unstable; urgency=medium
+
+  [ Aurélien COUDERC ]
+  * New upstream release (5.96.0).
+  * Bump Standards-Version to 4.6.1, no change required.
+  * Update symbols from build for 5.96.0.
+
+ -- Aurélien COUDERC <coucouf@debian.org>  Sun, 31 Jul 2022 13:32:58 +0200
+
 kwindowsystem (5.94.0-1) unstable; urgency=medium
 
   [ Aurélien COUDERC ]
diff -pruN 5.94.0-1/debian/control 5.96.0-1/debian/control
--- 5.94.0-1/debian/control	2022-04-29 21:02:30.000000000 +0000
+++ 5.96.0-1/debian/control	2022-07-31 11:32:58.000000000 +0000
@@ -7,7 +7,7 @@ Uploaders: Aurélien COUDERC <coucouf@de
 Build-Depends: cmake (>= 3.16~),
                debhelper-compat (= 13),
                doxygen,
-               extra-cmake-modules (>= 5.93.0~),
+               extra-cmake-modules (>= 5.96.0~),
                libqt5sql5-sqlite:native,
                libqt5x11extras5-dev (>= 5.15.2~),
                libx11-dev,
@@ -23,7 +23,7 @@ Build-Depends: cmake (>= 3.16~),
                qtbase5-dev (>= 5.15.2~),
                qttools5-dev (>= 5.4),
                qttools5-dev-tools (>= 5.4),
-Standards-Version: 4.6.0
+Standards-Version: 4.6.1
 Homepage: https://invent.kde.org/frameworks/kwindowsystem
 Vcs-Browser: https://salsa.debian.org/qt-kde-team/kde/kwindowsystem
 Vcs-Git: https://salsa.debian.org/qt-kde-team/kde/kwindowsystem.git
diff -pruN 5.94.0-1/debian/libkf5windowsystem5.symbols 5.96.0-1/debian/libkf5windowsystem5.symbols
--- 5.94.0-1/debian/libkf5windowsystem5.symbols	2022-03-26 15:28:37.000000000 +0000
+++ 5.96.0-1/debian/libkf5windowsystem5.symbols	2022-07-31 11:32:58.000000000 +0000
@@ -115,6 +115,7 @@ libKF5WindowSystem.so.5 libkf5windowsyst
  _ZN11NETRootInfo19setNumberOfDesktopsEi@Base 4.96.0
  _ZN11NETRootInfo20setDefaultPropertiesEv@Base 4.96.0
  _ZN11NETRootInfo21setClientListStackingEPKjj@Base 4.96.0
+ _ZN11NETRootInfo21showWindowMenuRequestEjiii@Base 5.96.0
  _ZN11NETRootInfo23moveResizeWindowRequestEjiiiii@Base 4.96.0
  _ZN11NETRootInfo25updateSupportedPropertiesEj@Base 4.96.0
  _ZN11NETRootInfo5eventEP19xcb_generic_event_t@Base 4.96.0
diff -pruN 5.94.0-1/po/af/kwindowsystem5_qt.po 5.96.0-1/po/af/kwindowsystem5_qt.po
--- 5.94.0-1/po/af/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/af/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -15,7 +15,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/ar/kwindowsystem5_qt.po 5.96.0-1/po/ar/kwindowsystem5_qt.po
--- 5.94.0-1/po/ar/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ar/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -17,7 +17,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/as/kwindowsystem5_qt.po 5.96.0-1/po/as/kwindowsystem5_qt.po
--- 5.94.0-1/po/as/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/as/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/ast/kwindowsystem5_qt.po 5.96.0-1/po/ast/kwindowsystem5_qt.po
--- 5.94.0-1/po/ast/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ast/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -14,7 +14,7 @@ msgstr ""
 "X-Generator: Lokalize 20.12.1\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/az/kwindowsystem5_qt.po 5.96.0-1/po/az/kwindowsystem5_qt.po
--- 5.94.0-1/po/az/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/az/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -14,7 +14,7 @@ msgstr ""
 "X-Generator: Lokalize 19.12.3\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/be/kwindowsystem5_qt.po 5.96.0-1/po/be/kwindowsystem5_qt.po
--- 5.94.0-1/po/be/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/be/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -28,7 +28,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/be@latin/kwindowsystem5_qt.po 5.96.0-1/po/be@latin/kwindowsystem5_qt.po
--- 5.94.0-1/po/be@latin/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/be@latin/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -21,7 +21,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/bg/kwindowsystem5_qt.po 5.96.0-1/po/bg/kwindowsystem5_qt.po
--- 5.94.0-1/po/bg/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/bg/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/bn/kwindowsystem5_qt.po 5.96.0-1/po/bn/kwindowsystem5_qt.po
--- 5.94.0-1/po/bn/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/bn/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -23,7 +23,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/bn_IN/kwindowsystem5_qt.po 5.96.0-1/po/bn_IN/kwindowsystem5_qt.po
--- 5.94.0-1/po/bn_IN/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/bn_IN/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -22,7 +22,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/br/kwindowsystem5_qt.po 5.96.0-1/po/br/kwindowsystem5_qt.po
--- 5.94.0-1/po/br/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/br/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/bs/kwindowsystem5_qt.po 5.96.0-1/po/bs/kwindowsystem5_qt.po
--- 5.94.0-1/po/bs/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/bs/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -14,7 +14,7 @@ msgstr ""
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ca/kwindowsystem5_qt.po 5.96.0-1/po/ca/kwindowsystem5_qt.po
--- 5.94.0-1/po/ca/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ca/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -27,7 +27,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ca@valencia/kwindowsystem5_qt.po 5.96.0-1/po/ca@valencia/kwindowsystem5_qt.po
--- 5.94.0-1/po/ca@valencia/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ca@valencia/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -27,7 +27,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/crh/kwindowsystem5_qt.po 5.96.0-1/po/crh/kwindowsystem5_qt.po
--- 5.94.0-1/po/crh/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/crh/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/cs/kwindowsystem5_qt.po 5.96.0-1/po/cs/kwindowsystem5_qt.po
--- 5.94.0-1/po/cs/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/cs/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -23,7 +23,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/csb/kwindowsystem5_qt.po 5.96.0-1/po/csb/kwindowsystem5_qt.po
--- 5.94.0-1/po/csb/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/csb/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -21,7 +21,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/cy/kwindowsystem5_qt.po 5.96.0-1/po/cy/kwindowsystem5_qt.po
--- 5.94.0-1/po/cy/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/cy/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -31,7 +31,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/da/kwindowsystem5_qt.po 5.96.0-1/po/da/kwindowsystem5_qt.po
--- 5.94.0-1/po/da/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/da/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -21,7 +21,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/de/kwindowsystem5_qt.po 5.96.0-1/po/de/kwindowsystem5_qt.po
--- 5.94.0-1/po/de/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/de/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -25,7 +25,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/el/kwindowsystem5_qt.po 5.96.0-1/po/el/kwindowsystem5_qt.po
--- 5.94.0-1/po/el/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/el/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -33,7 +33,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/en_GB/kwindowsystem5_qt.po 5.96.0-1/po/en_GB/kwindowsystem5_qt.po
--- 5.94.0-1/po/en_GB/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/en_GB/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -19,7 +19,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/eo/kwindowsystem5_qt.po 5.96.0-1/po/eo/kwindowsystem5_qt.po
--- 5.94.0-1/po/eo/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/eo/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -28,7 +28,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/es/kwindowsystem5_qt.po 5.96.0-1/po/es/kwindowsystem5_qt.po
--- 5.94.0-1/po/es/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/es/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -28,7 +28,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/et/kwindowsystem5_qt.po 5.96.0-1/po/et/kwindowsystem5_qt.po
--- 5.94.0-1/po/et/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/et/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -22,7 +22,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/eu/kwindowsystem5_qt.po 5.96.0-1/po/eu/kwindowsystem5_qt.po
--- 5.94.0-1/po/eu/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/eu/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -24,7 +24,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/fa/kwindowsystem5_qt.po 5.96.0-1/po/fa/kwindowsystem5_qt.po
--- 5.94.0-1/po/fa/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/fa/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -24,7 +24,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/fi/kwindowsystem5_qt.po 5.96.0-1/po/fi/kwindowsystem5_qt.po
--- 5.94.0-1/po/fi/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/fi/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -39,7 +39,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/fr/kwindowsystem5_qt.po 5.96.0-1/po/fr/kwindowsystem5_qt.po
--- 5.94.0-1/po/fr/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/fr/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -36,7 +36,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/fy/kwindowsystem5_qt.po 5.96.0-1/po/fy/kwindowsystem5_qt.po
--- 5.94.0-1/po/fy/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/fy/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -28,7 +28,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/ga/kwindowsystem5_qt.po 5.96.0-1/po/ga/kwindowsystem5_qt.po
--- 5.94.0-1/po/ga/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ga/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -22,7 +22,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/gd/kwindowsystem5_qt.po 5.96.0-1/po/gd/kwindowsystem5_qt.po
--- 5.94.0-1/po/gd/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/gd/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -16,7 +16,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/gl/kwindowsystem5_qt.po 5.96.0-1/po/gl/kwindowsystem5_qt.po
--- 5.94.0-1/po/gl/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/gl/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -25,7 +25,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/gu/kwindowsystem5_qt.po 5.96.0-1/po/gu/kwindowsystem5_qt.po
--- 5.94.0-1/po/gu/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/gu/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/ha/kwindowsystem5_qt.po 5.96.0-1/po/ha/kwindowsystem5_qt.po
--- 5.94.0-1/po/ha/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ha/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/he/kwindowsystem5_qt.po 5.96.0-1/po/he/kwindowsystem5_qt.po
--- 5.94.0-1/po/he/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/he/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -32,7 +32,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/hi/kwindowsystem5_qt.po 5.96.0-1/po/hi/kwindowsystem5_qt.po
--- 5.94.0-1/po/hi/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/hi/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -23,7 +23,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/hne/kwindowsystem5_qt.po 5.96.0-1/po/hne/kwindowsystem5_qt.po
--- 5.94.0-1/po/hne/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/hne/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -21,7 +21,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/hr/kwindowsystem5_qt.po 5.96.0-1/po/hr/kwindowsystem5_qt.po
--- 5.94.0-1/po/hr/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/hr/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -31,7 +31,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/hsb/kwindowsystem5_qt.po 5.96.0-1/po/hsb/kwindowsystem5_qt.po
--- 5.94.0-1/po/hsb/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/hsb/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -23,7 +23,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/hu/kwindowsystem5_qt.po 5.96.0-1/po/hu/kwindowsystem5_qt.po
--- 5.94.0-1/po/hu/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/hu/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -18,7 +18,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/hy/kwindowsystem5_qt.po 5.96.0-1/po/hy/kwindowsystem5_qt.po
--- 5.94.0-1/po/hy/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/hy/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -23,7 +23,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/ia/kwindowsystem5_qt.po 5.96.0-1/po/ia/kwindowsystem5_qt.po
--- 5.94.0-1/po/ia/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ia/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -19,7 +19,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/id/kwindowsystem5_qt.po 5.96.0-1/po/id/kwindowsystem5_qt.po
--- 5.94.0-1/po/id/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/id/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -19,7 +19,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/is/kwindowsystem5_qt.po 5.96.0-1/po/is/kwindowsystem5_qt.po
--- 5.94.0-1/po/is/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/is/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -6,27 +6,26 @@
 # Richard Allen <ra@ra.is>, 1998-2004.
 # Pjetur G. Hjaltason <pjetur@pjetur.net>, 2003.
 # Arnar Leósson <leosson@frisurf.no>, 2003, 2005.
-# Sveinn í Felli <sveinki@nett.is>, 2007, 2008, 2009, 2010, 2011, 2012, 2013.
+# Sveinn í Felli <sveinki@nett.is>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: kdelibs4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2013-05-13 22:40+0000\n"
-"Last-Translator: Sveinn í Felli <sveinki@nett.is>\n"
-"Language-Team: Icelandic <kde-isl@molar.is>\n"
+"PO-Revision-Date: 2022-06-20 18:44+0000\n"
+"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
+"Language-Team: Icelandic\n"
 "Language: is\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.2\n"
+"X-Generator: Lokalize 19.12.3\n"
 "Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
-#, fuzzy, qt-format
-#| msgid "Desktop %1"
+#: platforms/xcb/kwindowsystem.cpp:1003
+#, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
 msgstr "Skjáborð %1"
diff -pruN 5.94.0-1/po/it/kwindowsystem5_qt.po 5.96.0-1/po/it/kwindowsystem5_qt.po
--- 5.94.0-1/po/it/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/it/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -28,7 +28,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ja/kwindowsystem5_qt.po 5.96.0-1/po/ja/kwindowsystem5_qt.po
--- 5.94.0-1/po/ja/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ja/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -28,7 +28,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ka/kwindowsystem5_qt.po 5.96.0-1/po/ka/kwindowsystem5_qt.po
--- 5.94.0-1/po/ka/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ka/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -1,26 +1,21 @@
-# KDE3 - Georgian translation of kdelibs4.po
-# Gia Shervashidze <giasher@telenet.ge>, 2005.
-#
 msgid ""
 msgstr ""
-"Project-Id-Version: kdelibs4\n"
-"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2009-12-17 02:11+0400\n"
-"Last-Translator: George Machitidze <giomac@gmail.com>\n"
-"Language-Team: Georgian <http://www.gia.ge>\n"
+"Project-Id-Version: kwindowsystem5_qt\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
+"Language-Team: Georgian <kde-i18n-doc@kde.org>\n"
 "Language: ka\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Qt-Contexts: true\n"
+"X-Generator: Poedit 3.0.1\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
-#, fuzzy, qt-format
-#| msgid "Desktop %1"
+#: platforms/xcb/kwindowsystem.cpp:1003
+#, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
-msgstr "სამუშაო დაფა %1"
+msgstr "სამუშაო მაგიდა %1"
diff -pruN 5.94.0-1/po/kk/kwindowsystem5_qt.po 5.96.0-1/po/kk/kwindowsystem5_qt.po
--- 5.94.0-1/po/kk/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/kk/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/km/kwindowsystem5_qt.po 5.96.0-1/po/km/kwindowsystem5_qt.po
--- 5.94.0-1/po/km/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/km/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -18,7 +18,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/kn/kwindowsystem5_qt.po 5.96.0-1/po/kn/kwindowsystem5_qt.po
--- 5.94.0-1/po/kn/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/kn/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -22,7 +22,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/ko/kwindowsystem5_qt.po 5.96.0-1/po/ko/kwindowsystem5_qt.po
--- 5.94.0-1/po/ko/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ko/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ku/kwindowsystem5_qt.po 5.96.0-1/po/ku/kwindowsystem5_qt.po
--- 5.94.0-1/po/ku/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ku/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -28,7 +28,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/lb/kwindowsystem5_qt.po 5.96.0-1/po/lb/kwindowsystem5_qt.po
--- 5.94.0-1/po/lb/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/lb/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -18,7 +18,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/lt/kwindowsystem5_qt.po 5.96.0-1/po/lt/kwindowsystem5_qt.po
--- 5.94.0-1/po/lt/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/lt/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -25,7 +25,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/lv/kwindowsystem5_qt.po 5.96.0-1/po/lv/kwindowsystem5_qt.po
--- 5.94.0-1/po/lv/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/lv/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -27,7 +27,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/mai/kwindowsystem5_qt.po 5.96.0-1/po/mai/kwindowsystem5_qt.po
--- 5.94.0-1/po/mai/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/mai/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -22,7 +22,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/mk/kwindowsystem5_qt.po 5.96.0-1/po/mk/kwindowsystem5_qt.po
--- 5.94.0-1/po/mk/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/mk/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -31,7 +31,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/ml/kwindowsystem5_qt.po 5.96.0-1/po/ml/kwindowsystem5_qt.po
--- 5.94.0-1/po/ml/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ml/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -23,7 +23,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/mr/kwindowsystem5_qt.po 5.96.0-1/po/mr/kwindowsystem5_qt.po
--- 5.94.0-1/po/mr/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/mr/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -21,7 +21,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ms/kwindowsystem5_qt.po 5.96.0-1/po/ms/kwindowsystem5_qt.po
--- 5.94.0-1/po/ms/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ms/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -23,7 +23,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/nb/kwindowsystem5_qt.po 5.96.0-1/po/nb/kwindowsystem5_qt.po
--- 5.94.0-1/po/nb/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/nb/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -27,7 +27,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/nds/kwindowsystem5_qt.po 5.96.0-1/po/nds/kwindowsystem5_qt.po
--- 5.94.0-1/po/nds/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/nds/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -21,7 +21,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ne/kwindowsystem5_qt.po 5.96.0-1/po/ne/kwindowsystem5_qt.po
--- 5.94.0-1/po/ne/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ne/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -24,7 +24,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/nl/kwindowsystem5_qt.po 5.96.0-1/po/nl/kwindowsystem5_qt.po
--- 5.94.0-1/po/nl/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/nl/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -33,7 +33,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/nn/kwindowsystem5_qt.po 5.96.0-1/po/nn/kwindowsystem5_qt.po
--- 5.94.0-1/po/nn/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/nn/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -24,7 +24,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/oc/kwindowsystem5_qt.po 5.96.0-1/po/oc/kwindowsystem5_qt.po
--- 5.94.0-1/po/oc/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/oc/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/or/kwindowsystem5_qt.po 5.96.0-1/po/or/kwindowsystem5_qt.po
--- 5.94.0-1/po/or/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/or/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -21,7 +21,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/pa/kwindowsystem5_qt.po 5.96.0-1/po/pa/kwindowsystem5_qt.po
--- 5.94.0-1/po/pa/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/pa/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -26,7 +26,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/pl/kwindowsystem5_qt.po 5.96.0-1/po/pl/kwindowsystem5_qt.po
--- 5.94.0-1/po/pl/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/pl/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -30,7 +30,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ps/kwindowsystem5_qt.po 5.96.0-1/po/ps/kwindowsystem5_qt.po
--- 5.94.0-1/po/ps/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ps/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -21,7 +21,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/pt/kwindowsystem5_qt.po 5.96.0-1/po/pt/kwindowsystem5_qt.po
--- 5.94.0-1/po/pt/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/pt/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -7,7 +7,7 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/pt_BR/kwindowsystem5_qt.po 5.96.0-1/po/pt_BR/kwindowsystem5_qt.po
--- 5.94.0-1/po/pt_BR/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/pt_BR/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -30,7 +30,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ro/kwindowsystem5_qt.po 5.96.0-1/po/ro/kwindowsystem5_qt.po
--- 5.94.0-1/po/ro/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ro/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -21,7 +21,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ru/kwindowsystem5_qt.po 5.96.0-1/po/ru/kwindowsystem5_qt.po
--- 5.94.0-1/po/ru/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ru/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -35,7 +35,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/si/kwindowsystem5_qt.po 5.96.0-1/po/si/kwindowsystem5_qt.po
--- 5.94.0-1/po/si/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/si/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -18,7 +18,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/sk/kwindowsystem5_qt.po 5.96.0-1/po/sk/kwindowsystem5_qt.po
--- 5.94.0-1/po/sk/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/sk/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -24,7 +24,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/sl/kwindowsystem5_qt.po 5.96.0-1/po/sl/kwindowsystem5_qt.po
--- 5.94.0-1/po/sl/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/sl/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -30,7 +30,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/sq/kwindowsystem5_qt.po 5.96.0-1/po/sq/kwindowsystem5_qt.po
--- 5.94.0-1/po/sq/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/sq/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -17,7 +17,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/sv/kwindowsystem5_qt.po 5.96.0-1/po/sv/kwindowsystem5_qt.po
--- 5.94.0-1/po/sv/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/sv/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -14,7 +14,7 @@ msgstr ""
 "X-Generator: Lokalize 1.4\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/ta/kwindowsystem5_qt.po 5.96.0-1/po/ta/kwindowsystem5_qt.po
--- 5.94.0-1/po/ta/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ta/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -3,27 +3,27 @@
 #
 # Sivakumar Shanmugasundaram <sshanmu@yahoo.com>, 2000.
 # Thuraiappah Vaseeharan <t_vasee@yahoo.com>, 2000-2001.
-# ம. ஸ்ரீ ராமதாஸ் | Sri Ramadoss M <amachu@yavarkkum.org>, 2007-2012
+# ம. ஸ்ரீ ராமதாஸ் | Sri Ramadoss M <amachu@yavarkkum.org>, 2007-2012.
+# Kishore G <kishore96@gmail.com>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: kdelibs4\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2014-03-23 01:50+0000\n"
-"PO-Revision-Date: 2012-03-25 21:39+0530\n"
-"Last-Translator: Sri Ramadoss M <amachu@yavarkkum.org>\n"
-"Language-Team: Tamil <podhu@madaladal.yavarkkum.org>\n"
+"PO-Revision-Date: 2022-06-21 21:19+0530\n"
+"Last-Translator: Kishore G <kishore96@gmail.com>\n"
+"Language-Team: Tamil <kde-i18n-doc@kde.org>\n"
 "Language: ta\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 1.2\n"
+"X-Generator: Lokalize 22.04.2\n"
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
-#, fuzzy, qt-format
-#| msgid "Desktop %1"
+#: platforms/xcb/kwindowsystem.cpp:1003
+#, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
-msgstr "திரை %1"
+msgstr "பணிமேடை %1"
diff -pruN 5.94.0-1/po/te/kwindowsystem5_qt.po 5.96.0-1/po/te/kwindowsystem5_qt.po
--- 5.94.0-1/po/te/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/te/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -26,7 +26,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/tg/kwindowsystem5_qt.po 5.96.0-1/po/tg/kwindowsystem5_qt.po
--- 5.94.0-1/po/tg/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/tg/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -23,7 +23,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/th/kwindowsystem5_qt.po 5.96.0-1/po/th/kwindowsystem5_qt.po
--- 5.94.0-1/po/th/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/th/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -23,7 +23,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/tr/kwindowsystem5_qt.po 5.96.0-1/po/tr/kwindowsystem5_qt.po
--- 5.94.0-1/po/tr/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/tr/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -34,7 +34,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/tt/kwindowsystem5_qt.po 5.96.0-1/po/tt/kwindowsystem5_qt.po
--- 5.94.0-1/po/tt/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/tt/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -19,7 +19,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/ug/kwindowsystem5_qt.po 5.96.0-1/po/ug/kwindowsystem5_qt.po
--- 5.94.0-1/po/ug/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/ug/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -20,7 +20,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/uk/kwindowsystem5_qt.po 5.96.0-1/po/uk/kwindowsystem5_qt.po
--- 5.94.0-1/po/uk/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/uk/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -26,7 +26,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/uz/kwindowsystem5_qt.po 5.96.0-1/po/uz/kwindowsystem5_qt.po
--- 5.94.0-1/po/uz/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/uz/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -19,7 +19,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/uz@cyrillic/kwindowsystem5_qt.po 5.96.0-1/po/uz@cyrillic/kwindowsystem5_qt.po
--- 5.94.0-1/po/uz@cyrillic/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/uz@cyrillic/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -19,7 +19,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/vi/kwindowsystem5_qt.po 5.96.0-1/po/vi/kwindowsystem5_qt.po
--- 5.94.0-1/po/vi/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/vi/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -22,7 +22,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/wa/kwindowsystem5_qt.po 5.96.0-1/po/wa/kwindowsystem5_qt.po
--- 5.94.0-1/po/wa/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/wa/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -24,7 +24,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/xh/kwindowsystem5_qt.po 5.96.0-1/po/xh/kwindowsystem5_qt.po
--- 5.94.0-1/po/xh/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/xh/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -25,7 +25,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/zh_CN/kwindowsystem5_qt.po 5.96.0-1/po/zh_CN/kwindowsystem5_qt.po
--- 5.94.0-1/po/zh_CN/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/zh_CN/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -12,10 +12,6 @@
 # Weng Xuetian <wengxt@gmail.com>, 2011, 2012, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2022-04-26 15:19\n"
-"Language-Team: Chinese Simplified\n"
-"Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -26,9 +22,13 @@ msgstr ""
 "X-Crowdin-Language: zh-CN\n"
 "X-Crowdin-File: /kf5-trunk/messages/kwindowsystem/kwindowsystem5_qt.pot\n"
 "X-Crowdin-File-ID: 5589\n"
+"Project-Id-Version: kdeorg\n"
+"Language-Team: Chinese Simplified\n"
+"Language: zh_CN\n"
+"PO-Revision-Date: 2022-07-02 10:59\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/po/zh_HK/kwindowsystem5_qt.po 5.96.0-1/po/zh_HK/kwindowsystem5_qt.po
--- 5.94.0-1/po/zh_HK/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/zh_HK/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -37,7 +37,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, fuzzy, qt-format
 #| msgid "Desktop %1"
 msgctxt "KWindowSystem|"
diff -pruN 5.94.0-1/po/zh_TW/kwindowsystem5_qt.po 5.96.0-1/po/zh_TW/kwindowsystem5_qt.po
--- 5.94.0-1/po/zh_TW/kwindowsystem5_qt.po	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/po/zh_TW/kwindowsystem5_qt.po	2022-07-02 16:00:50.000000000 +0000
@@ -28,7 +28,7 @@ msgstr ""
 "X-Qt-Contexts: true\n"
 
 #: platforms/osx/kwindowsystem.cpp:571 platforms/windows/kwindowsystem.cpp:626
-#: platforms/xcb/kwindowsystem.cpp:1002
+#: platforms/xcb/kwindowsystem.cpp:1003
 #, qt-format
 msgctxt "KWindowSystem|"
 msgid "Desktop %1"
diff -pruN 5.94.0-1/src/cptr_p.h 5.96.0-1/src/cptr_p.h
--- 5.94.0-1/src/cptr_p.h	1970-01-01 00:00:00.000000000 +0000
+++ 5.96.0-1/src/cptr_p.h	2022-07-02 16:00:50.000000000 +0000
@@ -0,0 +1,18 @@
+/*
+    This file is part of the KDE libraries
+    SPDX-FileCopyrightText: 2022 Xaver Hugl <xaver.hugl@gmail.com>
+
+    SPDX-License-Identifier: LGPL-2.1-or-later
+*/
+#pragma once
+#include <memory>
+
+struct CDeleter {
+    template<typename T>
+    void operator()(T *ptr)
+    {
+        free(ptr);
+    }
+};
+template<typename T>
+using UniqueCPointer = std::unique_ptr<T, CDeleter>;
diff -pruN 5.94.0-1/src/kwindowsystem.cpp 5.96.0-1/src/kwindowsystem.cpp
--- 5.94.0-1/src/kwindowsystem.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/kwindowsystem.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -48,18 +48,18 @@ public:
     }
     KWindowSystemPrivate *xcbPlugin()
     {
-        if (xcbPrivate.isNull()) {
+        if (!xcbPrivate) {
             QPluginLoader loader(QStringLiteral(XCB_PLUGIN_PATH));
-            QScopedPointer<KWindowSystemPluginInterface> xcbPlugin(qobject_cast<KWindowSystemPluginInterface *>(loader.instance()));
-            if (!xcbPlugin.isNull()) {
+            std::unique_ptr<KWindowSystemPluginInterface> xcbPlugin(qobject_cast<KWindowSystemPluginInterface *>(loader.instance()));
+            if (xcbPlugin) {
                 xcbPrivate.reset(xcbPlugin->createWindowSystem());
             }
         }
-        return xcbPrivate.data();
+        return xcbPrivate.get();
     }
     KWindowSystem kwm;
-    QScopedPointer<KWindowSystemPrivate> d;
-    QScopedPointer<KWindowSystemPrivate> xcbPrivate;
+    std::unique_ptr<KWindowSystemPrivate> d;
+    std::unique_ptr<KWindowSystemPrivate> xcbPrivate;
 };
 
 Q_GLOBAL_STATIC(KWindowSystemStaticContainer, g_kwmInstanceContainer)
@@ -367,7 +367,7 @@ KWindowSystem *KWindowSystem::self()
 
 KWindowSystemPrivate *KWindowSystem::d_func()
 {
-    return g_kwmInstanceContainer()->d.data();
+    return g_kwmInstanceContainer()->d.get();
 }
 
 void KWindowSystem::connectNotify(const QMetaMethod &signal)
diff -pruN 5.94.0-1/src/kwindowsystem.h 5.96.0-1/src/kwindowsystem.h
--- 5.94.0-1/src/kwindowsystem.h	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/kwindowsystem.h	2022-07-02 16:00:50.000000000 +0000
@@ -677,6 +677,7 @@ public:
          **/
         Wayland,
     };
+    Q_ENUM(Platform);
     /**
      * Returns the Platform used by the QGuiApplication.
      * This method allows to check for the used windowing system in a cheap and reliable way.
@@ -710,7 +711,7 @@ public:
      * @param serial of the event that triggered the request
      * @param app_id identifier of the application that we are launching
      *
-     * @see currentSerial
+     * @see lastInputSerial
      * @since 5.83
      */
     Q_INVOKABLE static void requestXdgActivationToken(QWindow *win, uint32_t serial, const QString &app_id);
diff -pruN 5.94.0-1/src/netwm_def.h 5.96.0-1/src/netwm_def.h
--- 5.94.0-1/src/netwm_def.h	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/netwm_def.h	2022-07-02 16:00:50.000000000 +0000
@@ -439,6 +439,10 @@ public:
             @since 5.58
         **/
         CriticalNotification = 17, // NON STANDARD
+        /**
+         * indicates that this window is an applet.
+         */
+        AppletPopup = 18, // NON STANDARD
     };
 
     /**
@@ -465,6 +469,7 @@ public:
         DNDIconMask = 1u << 15, ///< @see DNDIcon
         OnScreenDisplayMask = 1u << 16, ///< NON STANDARD @see OnScreenDisplay @since 5.6
         CriticalNotificationMask = 1u << 17, ///< NON STANDARD @see CriticalNotification @since 5.58
+        AppletPopupMask = 1u << 18, ///< NON STANDARD @see AppletPopup
         AllTypesMask = 0U - 1, ///< All window types.
     };
     /**
@@ -782,6 +787,7 @@ public:
         @li WM2DesktopFileName the base name of the desktop file name or the full path to the desktop file
         @li WM2GTKFrameExtents extents of the shadow drawn by the client
         @li WM2GTKApplicationId _GTK_APPLICATION_ID
+        @li WM2GTKShowWindowMenu _GTK_SHOW_WINDOW_MENU
 
         @see Properties2
     **/
@@ -818,6 +824,7 @@ public:
         WM2AppMenuServiceName = 1u << 28, // NOT STANDARD @since 5.69
         WM2AppMenuObjectPath = 1u << 29, // NOT STANDARD @since 5.69
         WM2GTKApplicationId = 1u << 30, // NOT STANDARD @since 5.91
+        WM2GTKShowWindowMenu = 1u << 31, // NOT STANDARD @since 5.96
         WM2AllProperties = ~0u,
     };
     /**
diff -pruN 5.94.0-1/src/platforms/xcb/atoms_p.h 5.96.0-1/src/platforms/xcb/atoms_p.h
--- 5.94.0-1/src/platforms/xcb/atoms_p.h	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/atoms_p.h	2022-07-02 16:00:50.000000000 +0000
@@ -143,6 +143,7 @@ ENUM_BEGIN(KwsAtom)
     ENUM(_KDE_NET_WM_WINDOW_TYPE_TOPMENU),
     ENUM(_KDE_NET_WM_WINDOW_TYPE_ON_SCREEN_DISPLAY),
     ENUM(_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION),
+    ENUM(_KDE_NET_WM_WINDOW_TYPE_APPLET_POPUP),
     ENUM(_KDE_NET_WM_TEMPORARY_RULES),
     ENUM(_NET_WM_FRAME_OVERLAP),
     ENUM(_KDE_NET_WM_APPMENU_SERVICE_NAME),
@@ -154,6 +155,7 @@ ENUM_BEGIN(KwsAtom)
     // GTK extensions
     ENUM(_GTK_FRAME_EXTENTS),
     ENUM(_GTK_APPLICATION_ID),
+    ENUM(_GTK_SHOW_WINDOW_MENU),
 
     // application protocols
     ENUM(WM_PROTOCOLS),
diff -pruN 5.94.0-1/src/platforms/xcb/kwindoweffects.cpp 5.96.0-1/src/platforms/xcb/kwindoweffects.cpp
--- 5.94.0-1/src/platforms/xcb/kwindoweffects.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/kwindoweffects.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -23,6 +23,8 @@
 
 #include <xcb/xcb.h>
 
+#include "cptr_p.h"
+
 using namespace KWindowEffects;
 
 KWindowEffectsPrivateX11::KWindowEffectsPrivateX11()
@@ -77,12 +79,12 @@ bool KWindowEffectsPrivateX11::isEffectA
     xcb_list_properties_cookie_t propsCookie = xcb_list_properties_unchecked(c, QX11Info::appRootWindow());
     xcb_intern_atom_cookie_t atomCookie = xcb_intern_atom_unchecked(c, false, effectName.length(), effectName.constData());
 
-    QScopedPointer<xcb_list_properties_reply_t, QScopedPointerPodDeleter> props(xcb_list_properties_reply(c, propsCookie, nullptr));
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    UniqueCPointer<xcb_list_properties_reply_t> props(xcb_list_properties_reply(c, propsCookie, nullptr));
+    UniqueCPointer<xcb_intern_atom_reply_t> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
     if (!atom || !props) {
         return false;
     }
-    xcb_atom_t *atoms = xcb_list_properties_atoms(props.data());
+    xcb_atom_t *atoms = xcb_list_properties_atoms(props.get());
     for (int i = 0; i < props->atoms_len; ++i) {
         if (atoms[i] == atom->atom) {
             return true;
@@ -121,7 +123,7 @@ void KWindowEffectsPrivateX11::slideWind
         break;
     }
 
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    UniqueCPointer<xcb_intern_atom_reply_t> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
     if (!atom) {
         return;
     }
@@ -175,7 +177,7 @@ void KWindowEffectsPrivateX11::presentWi
 
     const QByteArray effectName = QByteArrayLiteral("_KDE_PRESENT_WINDOWS_GROUP");
     xcb_intern_atom_cookie_t atomCookie = xcb_intern_atom_unchecked(c, false, effectName.length(), effectName.constData());
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    UniqueCPointer<xcb_intern_atom_reply_t> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
     if (!atom) {
         return;
     }
@@ -192,7 +194,7 @@ void KWindowEffectsPrivateX11::presentWi
     }
     const QByteArray effectName = QByteArrayLiteral("_KDE_PRESENT_WINDOWS_DESKTOP");
     xcb_intern_atom_cookie_t atomCookie = xcb_intern_atom_unchecked(c, false, effectName.length(), effectName.constData());
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    UniqueCPointer<xcb_intern_atom_reply_t> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
     if (!atom) {
         return;
     }
@@ -211,7 +213,7 @@ void KWindowEffectsPrivateX11::highlight
     }
     const QByteArray effectName = QByteArrayLiteral("_KDE_WINDOW_HIGHLIGHT");
     xcb_intern_atom_cookie_t atomCookie = xcb_intern_atom_unchecked(c, false, effectName.length(), effectName.constData());
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    UniqueCPointer<xcb_intern_atom_reply_t> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
     if (!atom) {
         return;
     }
@@ -249,7 +251,7 @@ void KWindowEffectsPrivateX11::enableBlu
     }
     const QByteArray effectName = QByteArrayLiteral("_KDE_NET_WM_BLUR_BEHIND_REGION");
     xcb_intern_atom_cookie_t atomCookie = xcb_intern_atom_unchecked(c, false, effectName.length(), effectName.constData());
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    UniqueCPointer<xcb_intern_atom_reply_t> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
     if (!atom) {
         return;
     }
@@ -276,7 +278,7 @@ void KWindowEffectsPrivateX11::setBackgr
     xcb_connection_t *c = QX11Info::connection();
     const QByteArray effectName = QByteArrayLiteral("_KDE_NET_WM_BACKGROUND_FROST_REGION");
     xcb_intern_atom_cookie_t atomCookie = xcb_intern_atom_unchecked(c, false, effectName.length(), effectName.constData());
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    UniqueCPointer<xcb_intern_atom_reply_t> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
     if (!atom) {
         return;
     }
@@ -319,7 +321,7 @@ void KWindowEffectsPrivateX11::enableBac
     xcb_connection_t *c = QX11Info::connection();
     const QByteArray effectName = QByteArrayLiteral("_KDE_NET_WM_BACKGROUND_CONTRAST_REGION");
     xcb_intern_atom_cookie_t atomCookie = xcb_intern_atom_unchecked(c, false, effectName.length(), effectName.constData());
-    QScopedPointer<xcb_intern_atom_reply_t, QScopedPointerPodDeleter> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
+    UniqueCPointer<xcb_intern_atom_reply_t> atom(xcb_intern_atom_reply(c, atomCookie, nullptr));
     if (!atom) {
         return;
     }
diff -pruN 5.94.0-1/src/platforms/xcb/kwindowinfo.cpp 5.96.0-1/src/platforms/xcb/kwindowinfo.cpp
--- 5.94.0-1/src/platforms/xcb/kwindowinfo.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/kwindowinfo.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -23,14 +23,16 @@
 
 #include <xcb/res.h>
 
+#include "cptr_p.h"
+
 static bool haveXRes()
 {
     static bool s_checked = false;
     static bool s_haveXRes = false;
     if (!s_checked) {
         auto cookie = xcb_res_query_version(QX11Info::connection(), XCB_RES_MAJOR_VERSION, XCB_RES_MINOR_VERSION);
-        QScopedPointer<xcb_res_query_version_reply_t, QScopedPointerPodDeleter> reply(xcb_res_query_version_reply(QX11Info::connection(), cookie, nullptr));
-        s_haveXRes = !reply.isNull();
+        UniqueCPointer<xcb_res_query_version_reply_t> reply(xcb_res_query_version_reply(QX11Info::connection(), cookie, nullptr));
+        s_haveXRes = reply != nullptr;
         s_checked = true;
     }
     return s_haveXRes;
@@ -95,10 +97,9 @@ KWindowInfoPrivateX11::KWindowInfoPrivat
         specs.mask = XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID;
         auto cookie = xcb_res_query_client_ids(QX11Info::connection(), 1, &specs);
 
-        QScopedPointer<xcb_res_query_client_ids_reply_t, QScopedPointerPodDeleter> reply(
-            xcb_res_query_client_ids_reply(QX11Info::connection(), cookie, nullptr));
-        if (reply && xcb_res_query_client_ids_ids_length(reply.data()) > 0) {
-            uint32_t pid = *xcb_res_client_id_value_value((xcb_res_query_client_ids_ids_iterator(reply.data()).data));
+        UniqueCPointer<xcb_res_query_client_ids_reply_t> reply(xcb_res_query_client_ids_reply(QX11Info::connection(), cookie, nullptr));
+        if (reply && xcb_res_query_client_ids_ids_length(reply.get()) > 0) {
+            uint32_t pid = *xcb_res_client_id_value_value((xcb_res_query_client_ids_ids_iterator(reply.get()).data));
             m_pid = pid;
         }
     }
diff -pruN 5.94.0-1/src/platforms/xcb/kwindowinfo_p_x11.h 5.96.0-1/src/platforms/xcb/kwindowinfo_p_x11.h
--- 5.94.0-1/src/platforms/xcb/kwindowinfo_p_x11.h	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/kwindowinfo_p_x11.h	2022-07-02 16:00:50.000000000 +0000
@@ -7,7 +7,7 @@
 #ifndef KWINDOWINFO_P_X11_H
 #define KWINDOWINFO_P_X11_H
 #include "kwindowinfo_p.h"
-#include <QScopedPointer>
+#include <memory>
 
 class NETWinInfo;
 
@@ -55,7 +55,7 @@ public:
     int pid() const override;
 
 private:
-    QScopedPointer<NETWinInfo> m_info;
+    std::unique_ptr<NETWinInfo> m_info;
     QString m_name;
     QString m_iconic_name;
     QRect m_geometry;
diff -pruN 5.94.0-1/src/platforms/xcb/kwindowsystem.cpp 5.96.0-1/src/platforms/xcb/kwindowsystem.cpp
--- 5.94.0-1/src/platforms/xcb/kwindowsystem.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/kwindowsystem.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -10,6 +10,8 @@
 #include "kwindowsystem.h"
 #include "kwindowsystem_p_x11.h"
 
+#include "cptr_p.h"
+
 // clang-format off
 #include <kxerrorhandler_p.h>
 #include <fixx11h.h>
@@ -347,11 +349,10 @@ void NETEventFilter::addClient(xcb_windo
 
     if ((what >= KWindowSystemPrivateX11::INFO_WINDOWS)) {
         xcb_connection_t *c = QX11Info::connection();
-        QScopedPointer<xcb_get_window_attributes_reply_t, QScopedPointerPodDeleter> attr(
-            xcb_get_window_attributes_reply(c, xcb_get_window_attributes_unchecked(c, w), nullptr));
+        UniqueCPointer<xcb_get_window_attributes_reply_t> attr(xcb_get_window_attributes_reply(c, xcb_get_window_attributes_unchecked(c, w), nullptr));
 
         uint32_t events = XCB_EVENT_MASK_PROPERTY_CHANGE | XCB_EVENT_MASK_STRUCTURE_NOTIFY;
-        if (!attr.isNull()) {
+        if (attr) {
             events = events | attr->your_event_mask;
         }
         xcb_change_window_attributes(c, w, XCB_CW_EVENT_MASK, &events);
diff -pruN 5.94.0-1/src/platforms/xcb/kwindowsystem_p_x11.h 5.96.0-1/src/platforms/xcb/kwindowsystem_p_x11.h
--- 5.94.0-1/src/platforms/xcb/kwindowsystem_p_x11.h	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/kwindowsystem_p_x11.h	2022-07-02 16:00:50.000000000 +0000
@@ -11,6 +11,7 @@
 #include "netwm.h"
 
 #include <QAbstractNativeEventFilter>
+#include <memory>
 
 class NETEventFilter;
 
@@ -87,9 +88,9 @@ private:
     void init(FilterInfo info);
     NETEventFilter *s_d_func()
     {
-        return d.data();
+        return d.get();
     }
-    QScopedPointer<NETEventFilter> d;
+    std::unique_ptr<NETEventFilter> d;
 };
 
 class MainThreadInstantiator : public QObject
diff -pruN 5.94.0-1/src/platforms/xcb/kxmessages.cpp 5.96.0-1/src/platforms/xcb/kxmessages.cpp
--- 5.94.0-1/src/platforms/xcb/kxmessages.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/kxmessages.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -6,6 +6,7 @@
 */
 
 #include "kxmessages.h"
+#include "cptr_p.h"
 #include "kxutils_p.h"
 
 #if KWINDOWSYSTEM_HAVE_X11
@@ -82,8 +83,8 @@ private:
         if (m_retrieved || !m_cookie.sequence || !m_connection) {
             return;
         }
-        KXUtils::ScopedCPointer<xcb_intern_atom_reply_t> reply(xcb_intern_atom_reply(m_connection, m_cookie, nullptr));
-        if (!reply.isNull()) {
+        UniqueCPointer<xcb_intern_atom_reply_t> reply(xcb_intern_atom_reply(m_connection, m_cookie, nullptr));
+        if (reply) {
             m_atom = reply->atom;
         }
         m_retrieved = true;
@@ -119,7 +120,7 @@ public:
     XcbAtom accept_atom1;
     XcbAtom accept_atom2;
     QMap<WId, QByteArray> incoming_messages;
-    QScopedPointer<QWindow> handle;
+    std::unique_ptr<QWindow> handle;
     KXMessages *q;
     bool valid;
     xcb_connection_t *connection;
diff -pruN 5.94.0-1/src/platforms/xcb/kxutils.cpp 5.96.0-1/src/platforms/xcb/kxutils.cpp
--- 5.94.0-1/src/platforms/xcb/kxutils.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/kxutils.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -6,6 +6,7 @@
     SPDX-License-Identifier: LGPL-2.1-or-later
 */
 
+#include "cptr_p.h"
 #include "kwindowsystem_xcb_debug.h"
 #include "kxutils_p.h"
 #include <QBitmap>
@@ -24,15 +25,15 @@ template<typename T>
 T fromNative(xcb_pixmap_t pixmap, xcb_connection_t *c)
 {
     const xcb_get_geometry_cookie_t geoCookie = xcb_get_geometry_unchecked(c, pixmap);
-    ScopedCPointer<xcb_get_geometry_reply_t> geo(xcb_get_geometry_reply(c, geoCookie, nullptr));
-    if (geo.isNull()) {
+    UniqueCPointer<xcb_get_geometry_reply_t> geo(xcb_get_geometry_reply(c, geoCookie, nullptr));
+    if (!geo) {
         // getting geometry for the pixmap failed
         return T();
     }
 
     const xcb_get_image_cookie_t imageCookie = xcb_get_image_unchecked(c, XCB_IMAGE_FORMAT_Z_PIXMAP, pixmap, 0, 0, geo->width, geo->height, ~0);
-    ScopedCPointer<xcb_get_image_reply_t> xImage(xcb_get_image_reply(c, imageCookie, nullptr));
-    if (xImage.isNull()) {
+    UniqueCPointer<xcb_get_image_reply_t> xImage(xcb_get_image_reply(c, imageCookie, nullptr));
+    if (!xImage) {
         // request for image data failed
         return T();
     }
@@ -49,8 +50,8 @@ T fromNative(xcb_pixmap_t pixmap, xcb_co
         break;
     case 30: {
         // Qt doesn't have a matching image format. We need to convert manually
-        uint32_t *pixels = reinterpret_cast<uint32_t *>(xcb_get_image_data(xImage.data()));
-        for (uint i = 0; i < xImage.data()->length; ++i) {
+        uint32_t *pixels = reinterpret_cast<uint32_t *>(xcb_get_image_data(xImage.get()));
+        for (uint i = 0; i < xImage.get()->length; ++i) {
             int r = (pixels[i] >> 22) & 0xff;
             int g = (pixels[i] >> 12) & 0xff;
             int b = (pixels[i] >> 2) & 0xff;
@@ -66,9 +67,8 @@ T fromNative(xcb_pixmap_t pixmap, xcb_co
     default:
         return T(); // we don't know
     }
-    QImage
-        image(xcb_get_image_data(xImage.data()), geo->width, geo->height, xcb_get_image_data_length(xImage.data()) / geo->height, format, free, xImage.data());
-    xImage.take();
+    QImage image(xcb_get_image_data(xImage.get()), geo->width, geo->height, xcb_get_image_data_length(xImage.get()) / geo->height, format, free, xImage.get());
+    xImage.release();
     if (image.isNull()) {
         return T();
     }
diff -pruN 5.94.0-1/src/platforms/xcb/kxutils_p.h 5.96.0-1/src/platforms/xcb/kxutils_p.h
--- 5.94.0-1/src/platforms/xcb/kxutils_p.h	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/kxutils_p.h	2022-07-02 16:00:50.000000000 +0000
@@ -9,7 +9,6 @@
 #define KXUTILS_H
 
 #include <QPixmap>
-#include <QScopedPointer>
 #include <config-kwindowsystem.h>
 
 #if KWINDOWSYSTEM_HAVE_X11
@@ -23,15 +22,6 @@ struct xcb_connection_t;
  */
 namespace KXUtils
 {
-template<typename T>
-class ScopedCPointer : public QScopedPointer<T, QScopedPointerPodDeleter>
-{
-public:
-    ScopedCPointer(T *p = nullptr)
-        : QScopedPointer<T, QScopedPointerPodDeleter>(p)
-    {
-    }
-};
 
 /**
  * Creates a QPixmap that contains a copy of the pixmap given by the X handle @p pixmap
diff -pruN 5.94.0-1/src/platforms/xcb/netwm.cpp 5.96.0-1/src/platforms/xcb/netwm.cpp
--- 5.94.0-1/src/platforms/xcb/netwm.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/netwm.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -938,6 +938,9 @@ void NETRootInfo::setSupported()
         if (p->windowTypes & CriticalNotificationMask) {
             atoms[pnum++] = p->atom(_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION);
         }
+        if (p->windowTypes & AppletPopupMask) {
+            atoms[pnum++] = p->atom(_KDE_NET_WM_WINDOW_TYPE_APPLET_POPUP);
+        }
     }
 
     if (p->properties & WMState) {
@@ -1108,6 +1111,10 @@ void NETRootInfo::setSupported()
         atoms[pnum++] = p->atom(_GTK_FRAME_EXTENTS);
     }
 
+    if (p->properties2 & WM2GTKShowWindowMenu) {
+        atoms[pnum++] = p->atom(_GTK_SHOW_WINDOW_MENU);
+    }
+
     xcb_change_property(p->conn, XCB_PROP_MODE_REPLACE, p->root, p->atom(_NET_SUPPORTED), XCB_ATOM_ATOM, 32, pnum, (const void *)atoms);
 
     xcb_change_property(p->conn, XCB_PROP_MODE_REPLACE, p->root, p->atom(_NET_SUPPORTING_WM_CHECK), XCB_ATOM_WINDOW, 32, 1, (const void *)&(p->supportwindow));
@@ -1279,6 +1286,8 @@ void NETRootInfo::updateSupportedPropert
         p->windowTypes |= OnScreenDisplayMask;
     } else if (atom == p->atom(_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION)) {
         p->windowTypes |= CriticalNotificationMask;
+    } else if (atom == p->atom(_KDE_NET_WM_WINDOW_TYPE_APPLET_POPUP)) {
+        p->windowTypes |= AppletPopupMask;
     }
 
     else if (atom == p->atom(_NET_WM_STATE)) {
@@ -1423,6 +1432,10 @@ void NETRootInfo::updateSupportedPropert
         p->properties2 |= WM2GTKFrameExtents;
     }
 
+    else if (atom == p->atom(_GTK_SHOW_WINDOW_MENU)) {
+        p->properties2 |= WM2GTKShowWindowMenu;
+    }
+
     else if (atom == p->atom(_KDE_NET_WM_APPMENU_OBJECT_PATH)) {
         p->properties2 |= WM2AppMenuObjectPath;
     }
@@ -1580,6 +1593,16 @@ void NETRootInfo::moveResizeWindowReques
     send_client_message(p->conn, netwm_sendevent_mask, p->root, window, p->atom(_NET_MOVERESIZE_WINDOW), data);
 }
 
+void NETRootInfo::showWindowMenuRequest(xcb_window_t window, int device_id, int x_root, int y_root)
+{
+#ifdef NETWMDEBUG
+    fprintf(stderr, "NETRootInfo::showWindowMenuRequest: requesting menu for 0x%lx (%d, %d, %d)\n", window, device_id, x_root, y_root);
+#endif
+
+    const uint32_t data[5] = {uint32_t(device_id), uint32_t(x_root), uint32_t(y_root), 0, 0};
+    send_client_message(p->conn, netwm_sendevent_mask, p->root, window, p->atom(_GTK_SHOW_WINDOW_MENU), data);
+}
+
 void NETRootInfo::restackRequest(xcb_window_t window, RequestSource src, xcb_window_t above, int detail, xcb_timestamp_t timestamp)
 {
 #ifdef NETWMDEBUG
@@ -1790,6 +1813,17 @@ void NETRootInfo::event(xcb_generic_even
 #endif
 
             changeShowingDesktop(message->data.data32[0]);
+        } else if (message->type == p->atom(_GTK_SHOW_WINDOW_MENU)) {
+#ifdef NETWMDEBUG
+            fprintf(stderr,
+                    "NETRootInfo::event: showWindowMenu(%ld, %ld, %ld, %ld)\n",
+                    message->window,
+                    message->data.data32[0],
+                    message->data.data32[1],
+                    message->data.data32[2]);
+#endif
+
+            showWindowMenu(message->window, message->data.data32[0], message->data.data32[1], message->data.data32[2]);
         }
     }
 
@@ -3142,6 +3176,12 @@ void NETWinInfo::setWindowType(WindowTyp
         data[1] = p->atom(_NET_WM_WINDOW_TYPE_NOTIFICATION);
         len = 2;
         break;
+    
+    case AppletPopup:
+        data[0] = p->atom(_KDE_NET_WM_WINDOW_TYPE_APPLET_POPUP);
+        data[1] = XCB_NONE;
+        len = 1;
+        break;
 
     default:
     case Normal:
@@ -3801,6 +3841,8 @@ void NETWinInfo::event(xcb_generic_event
             dirty2 = WM2FullscreenMonitors;
         } else if (pe->atom == p->atom(_GTK_FRAME_EXTENTS)) {
             dirty2 |= WM2GTKFrameExtents;
+        } else if (pe->atom == p->atom(_GTK_SHOW_WINDOW_MENU)) {
+            dirty2 |= WM2GTKShowWindowMenu;
         } else if (pe->atom == p->atom(_KDE_NET_WM_APPMENU_SERVICE_NAME)) {
             dirty2 |= WM2AppMenuServiceName;
         } else if (pe->atom == p->atom(_KDE_NET_WM_APPMENU_OBJECT_PATH)) {
@@ -4257,6 +4299,10 @@ void NETWinInfo::update(NET::Properties
                 else if (type == p->atom(_KDE_NET_WM_WINDOW_TYPE_CRITICAL_NOTIFICATION)) {
                     p->types[pos++] = CriticalNotification;
                 }
+
+                else if (type == p->atom(_KDE_NET_WM_WINDOW_TYPE_APPLET_POPUP)) {
+                    p->types[pos++] = AppletPopup;
+                }
             }
         }
     }
@@ -4696,6 +4742,7 @@ case type: \
         CHECK_TYPE_MASK(DNDIcon)
         CHECK_TYPE_MASK(OnScreenDisplay)
         CHECK_TYPE_MASK(CriticalNotification)
+        CHECK_TYPE_MASK(AppletPopup)
 #undef CHECK_TYPE_MASK
     default:
         break;
diff -pruN 5.94.0-1/src/platforms/xcb/netwm.h 5.96.0-1/src/platforms/xcb/netwm.h
--- 5.94.0-1/src/platforms/xcb/netwm.h	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/platforms/xcb/netwm.h	2022-07-02 16:00:50.000000000 +0000
@@ -664,6 +664,19 @@ public:
     void moveResizeWindowRequest(xcb_window_t window, int flags, int x, int y, int width, int height);
 
     /**
+       Clients that wish to show the window menu using WM2GTKShowWindowMenu
+       (_GTK_SHOW_WINDOW_MENU) should call this function.
+       This will send a request to the Window Manager. See _GTK_SHOW_WINDOW_MENU
+       description for details.
+
+       @param window The client window that would be resized/moved.
+       @param device_id GTK device id
+       @param x Requested X position for the menu relative to the root window
+       @param y Requested Y position for the menu relative to the root window
+    **/
+    void showWindowMenuRequest(xcb_window_t window, int device_id, int x_root, int y_root);
+
+    /**
        Sends the _NET_RESTACK_WINDOW request.
     **/
     void restackRequest(xcb_window_t window, RequestSource source, xcb_window_t above, int detail, xcb_timestamp_t timestamp);
@@ -912,6 +925,23 @@ protected:
         Q_UNUSED(showing);
     }
 
+    /**
+       A Window Manager should subclass NETRootInfo and reimplement this function
+       when it wants to know when a Client made a request to show a window menu.
+
+       @param window The window that wants to move/resize
+       @param device_id GTK device id.
+       @param x_root X position of the cursor relative to the root window.
+       @param y_root Y position of the cursor relative to the root window.
+    **/
+    virtual void showWindowMenu(xcb_window_t window, int device_id, int x_root, int y_root)
+    {
+        Q_UNUSED(window);
+        Q_UNUSED(device_id);
+        Q_UNUSED(x_root);
+        Q_UNUSED(y_root);
+    }
+
 private:
     void update(NET::Properties properties, NET::Properties2 properties2);
     void setSupported();
diff -pruN 5.94.0-1/src/pluginwrapper.cpp 5.96.0-1/src/pluginwrapper.cpp
--- 5.94.0-1/src/pluginwrapper.cpp	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/pluginwrapper.cpp	2022-07-02 16:00:50.000000000 +0000
@@ -104,10 +104,10 @@ KWindowSystemPluginWrapper::KWindowSyste
     : m_plugin(loadPlugin())
     , m_effects()
 {
-    if (!m_plugin.isNull()) {
+    if (m_plugin) {
         m_effects.reset(m_plugin->createEffects());
     }
-    if (m_effects.isNull()) {
+    if (!m_effects) {
         m_effects.reset(new KWindowEffectsPrivateDummy());
     }
 }
@@ -118,13 +118,13 @@ KWindowSystemPluginWrapper::~KWindowSyst
 
 KWindowEffectsPrivate *KWindowSystemPluginWrapper::effects() const
 {
-    return m_effects.data();
+    return m_effects.get();
 }
 
 KWindowSystemPrivate *KWindowSystemPluginWrapper::createWindowSystem() const
 {
     KWindowSystemPrivate *p = nullptr;
-    if (!m_plugin.isNull()) {
+    if (m_plugin) {
         p = m_plugin->createWindowSystem();
     }
     if (!p) {
@@ -136,7 +136,7 @@ KWindowSystemPrivate *KWindowSystemPlugi
 KWindowInfoPrivate *KWindowSystemPluginWrapper::createWindowInfo(WId window, NET::Properties properties, NET::Properties2 properties2) const
 {
     KWindowInfoPrivate *p = nullptr;
-    if (!m_plugin.isNull()) {
+    if (m_plugin) {
         p = m_plugin->createWindowInfo(window, properties, properties2);
     }
     if (!p) {
@@ -148,7 +148,7 @@ KWindowInfoPrivate *KWindowSystemPluginW
 KWindowShadowPrivate *KWindowSystemPluginWrapper::createWindowShadow() const
 {
     KWindowShadowPrivate *p = nullptr;
-    if (!m_plugin.isNull()) {
+    if (m_plugin) {
         p = m_plugin->createWindowShadow();
     }
     if (!p) {
@@ -160,7 +160,7 @@ KWindowShadowPrivate *KWindowSystemPlugi
 KWindowShadowTilePrivate *KWindowSystemPluginWrapper::createWindowShadowTile() const
 {
     KWindowShadowTilePrivate *p = nullptr;
-    if (!m_plugin.isNull()) {
+    if (m_plugin) {
         p = m_plugin->createWindowShadowTile();
     }
     if (!p) {
diff -pruN 5.94.0-1/src/pluginwrapper_p.h 5.96.0-1/src/pluginwrapper_p.h
--- 5.94.0-1/src/pluginwrapper_p.h	2022-05-07 21:28:47.000000000 +0000
+++ 5.96.0-1/src/pluginwrapper_p.h	2022-07-02 16:00:50.000000000 +0000
@@ -8,8 +8,8 @@
 
 #include "netwm_def.h"
 
-#include <QScopedPointer>
 #include <QWidgetList> //For WId
+#include <memory>
 
 class KWindowEffectsPrivate;
 class KWindowInfoPrivate;
@@ -32,8 +32,8 @@ public:
     KWindowShadowTilePrivate *createWindowShadowTile() const;
 
 private:
-    QScopedPointer<KWindowSystemPluginInterface> m_plugin;
-    QScopedPointer<KWindowEffectsPrivate> m_effects;
+    std::unique_ptr<KWindowSystemPluginInterface> m_plugin;
+    std::unique_ptr<KWindowEffectsPrivate> m_effects;
 };
 
 #endif
