summaryrefslogblamecommitdiff
path: root/user/spectacle/no-wayland.patch
blob: 554e64d3416154f029c6c6c7d63b79b67edd5d9c (plain) (tree)































































































































































































                                                                                                                           
From bd10239697d436caaa8aac3f4eca8aa2a5c14cac Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Fri, 18 Oct 2019 19:48:50 -0500
Subject: [PATCH] Revert "Make QuickEditor fullscreen on Wayland"

Allow building without Wayland libraries.

This reverts commit 5679f7f5c9bc56e59744e9e4045dd01d7142fbfb.
---
 CMakeLists.txt                  |  1 -
 src/CMakeLists.txt              |  1 -
 src/QuickEditor/QuickEditor.cpp | 18 ++----------------
 src/QuickEditor/QuickEditor.h   |  8 +-------
 src/SpectacleCore.cpp           | 26 ++------------------------
 src/SpectacleCore.h             |  7 -------
 6 files changed, 5 insertions(+), 56 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3395c1b..06009f1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,7 +68,6 @@ find_package(
         NewStuff
         GlobalAccel
         XmlGui
-        Wayland
 )
 
 # optional components
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6ff1b30..80e50dd 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -84,7 +84,6 @@ target_link_libraries(
         KF5::NewStuff
         KF5::GlobalAccel
         KF5::XmlGui
-        KF5::WaylandClient
 )
 
 if(XCB_FOUND)
diff --git a/src/QuickEditor/QuickEditor.cpp b/src/QuickEditor/QuickEditor.cpp
index 41e5858..92ced06 100644
--- a/src/QuickEditor/QuickEditor.cpp
+++ b/src/QuickEditor/QuickEditor.cpp
@@ -18,8 +18,6 @@
  */
 
 #include <KLocalizedString>
-#include <KWayland/Client/plasmashell.h>
-#include <KWayland/Client/surface.h>
 #include <QGuiApplication>
 #include <QScreen>
 #include <QtCore/qmath.h>
@@ -52,7 +50,7 @@ const int QuickEditor::magZoom = 5;
 const int QuickEditor::magPixels = 16;
 const int QuickEditor::magOffset = 32;
 
-QuickEditor::QuickEditor(const QPixmap &thePixmap, KWayland::Client::PlasmaShell *plasmashell, QWidget *parent) :
+QuickEditor::QuickEditor(const QPixmap& thePixmap, QWidget *parent) :
     QWidget(parent),
     mMaskColor(QColor::fromRgbF(0, 0, 0, 0.15)),
     mStrokeColor(palette().highlight().color()),
@@ -91,19 +89,7 @@ QuickEditor::QuickEditor(const QPixmap &thePixmap, KWayland::Client::PlasmaShell
 
     dprI = 1.0 / devicePixelRatioF();
     setGeometry(0, 0, static_cast<int>(mPixmap.width() * dprI), static_cast<int>(mPixmap.height() * dprI));
-    // TODO This is a hack until a better interface is available
-    if (plasmashell) {
-        using namespace KWayland::Client;
-        winId();
-        auto surface = Surface::fromWindow(windowHandle());
-        if (!surface) {
-            return;
-        }
-        PlasmaShellSurface *plasmashellSurface = plasmashell->createSurface(surface, this);
-        plasmashellSurface->setRole(PlasmaShellSurface::Role::Panel);
-        plasmashellSurface->setPanelTakesFocus(true);
-        plasmashellSurface->setPosition(geometry().topLeft());
-    }
+
     if (config->rememberLastRectangularRegion()) {
         QRect cropRegion = config->cropRegion();
         if (!cropRegion.isEmpty()) {
diff --git a/src/QuickEditor/QuickEditor.h b/src/QuickEditor/QuickEditor.h
index 8dd6586..8187995 100644
--- a/src/QuickEditor/QuickEditor.h
+++ b/src/QuickEditor/QuickEditor.h
@@ -29,19 +29,13 @@
 
 class QMouseEvent;
 
-namespace KWayland {
-namespace Client {
-class PlasmaShell;
-}
-}
-
 class QuickEditor: public QWidget
 {
     Q_OBJECT
 
     public:
 
-    explicit QuickEditor(const QPixmap &thePixmap, KWayland::Client::PlasmaShell *plasmashell, QWidget *parent = nullptr);
+    explicit QuickEditor(const QPixmap &thePixmap, QWidget *parent = nullptr);
     virtual ~QuickEditor() = default;
 
     private:
diff --git a/src/SpectacleCore.cpp b/src/SpectacleCore.cpp
index 7024750..40417bb 100644
--- a/src/SpectacleCore.cpp
+++ b/src/SpectacleCore.cpp
@@ -27,9 +27,6 @@
 #include <KMessageBox>
 #include <KNotification>
 #include <KRun>
-#include <KWayland/Client/connection_thread.h>
-#include <KWayland/Client/plasmashell.h>
-#include <KWayland/Client/registry.h>
 #include <KWindowSystem>
 
 #include <QApplication>
@@ -54,8 +51,7 @@ SpectacleCore::SpectacleCore(StartMode theStartMode,
     mPlatform(loadPlatform()),
     mMainWindow(nullptr),
     mIsGuiInited(false),
-    mCopyToClipboard(theCopyToClipboard),
-    mWaylandPlasmashell(nullptr)
+    mCopyToClipboard(theCopyToClipboard)
 {
     auto lConfig = KSharedConfig::openConfig(QStringLiteral("spectaclerc"));
     KConfigGroup lGuiConfig(lConfig, "GuiConfig");
@@ -92,24 +88,6 @@ SpectacleCore::SpectacleCore(StartMode theStartMode,
     connect(lExportManager, &ExportManager::forceNotify, this, &SpectacleCore::doNotify);
     connect(mPlatform.get(), &Platform::windowTitleChanged, lExportManager, &ExportManager::setWindowTitle);
 
-    // Needed so the QuickEditor can go fullscreen on wayland
-    if (KWindowSystem::isPlatformWayland()) {
-        using namespace KWayland::Client;
-        ConnectionThread *connection = ConnectionThread::fromApplication(this);
-        if (!connection) {
-            return;
-        }
-        Registry *registry = new Registry(this);
-        registry->create(connection);
-        connect(registry, &Registry::plasmaShellAnnounced, this,
-            [this, registry] (quint32 name, quint32 version) {
-                mWaylandPlasmashell = registry->createPlasmaShell(name, version, this);
-            }
-        );
-        registry->setup();
-        connection->roundtrip();
-    }
-
     switch (theStartMode) {
     case StartMode::DBus:
         break;
@@ -245,7 +223,7 @@ void SpectacleCore::screenshotUpdated(const QPixmap &thePixmap)
 
     if (lExportManager->captureMode() == Spectacle::CaptureMode::RectangularRegion) {
         if(!mQuickEditor) {
-            mQuickEditor = std::make_unique<QuickEditor>(thePixmap, mWaylandPlasmashell);
+            mQuickEditor = std::make_unique<QuickEditor>(thePixmap);
             connect(mQuickEditor.get(), &QuickEditor::grabDone, this, &SpectacleCore::screenshotUpdated);
             connect(mQuickEditor.get(), &QuickEditor::grabCancelled, this, &SpectacleCore::screenshotFailed);
             mQuickEditor->show();
diff --git a/src/SpectacleCore.h b/src/SpectacleCore.h
index 3e90a99..8994995 100644
--- a/src/SpectacleCore.h
+++ b/src/SpectacleCore.h
@@ -30,12 +30,6 @@
 
 #include <memory>
 
-namespace KWayland {
-namespace Client {
-class PlasmaShell;
-}
-}
-
 using MainWindowPtr = std::unique_ptr<KSMainWindow>;
 using EditorPtr     = std::unique_ptr<QuickEditor>;
 
@@ -98,4 +92,3 @@ class SpectacleCore: public QObject
     bool          mIsGuiInited;
     bool          mCopyToClipboard;
-    KWayland::Client::PlasmaShell *mWaylandPlasmashell;
 };
-- 
2.22.1