diff --git a/src/Gui/KSWidget.cpp b/src/Gui/KSWidget.cpp --- a/src/Gui/KSWidget.cpp +++ b/src/Gui/KSWidget.cpp @@ -57,7 +57,7 @@ if (supportedModes.contains(ImageGrabber::FullScreen)) mCaptureArea->insertItem(1, i18n("Full Screen (All Monitors)"), ImageGrabber::FullScreen); if (supportedModes.contains(ImageGrabber::CurrentScreen)) - mCaptureArea->insertItem(2, i18n("Current Screen"), ImageGrabber::CurrentScreen); + mCaptureArea->insertItem(2, i18n("Full Screen"), ImageGrabber::CurrentScreen); if (supportedModes.contains(ImageGrabber::ActiveWindow)) mCaptureArea->insertItem(3, i18n("Active Window"), ImageGrabber::ActiveWindow); if (supportedModes.contains(ImageGrabber::WindowUnderCursor)) diff --git a/src/PlatformBackends/KWinWaylandImageGrabber.h b/src/PlatformBackends/KWinWaylandImageGrabber.h --- a/src/PlatformBackends/KWinWaylandImageGrabber.h +++ b/src/PlatformBackends/KWinWaylandImageGrabber.h @@ -30,7 +30,7 @@ explicit KWinWaylandImageGrabber(QObject * parent = nullptr); ~KWinWaylandImageGrabber() override; - QVector supportedModes() const override { return {FullScreen, CurrentScreen, /*ActiveWindow, */WindowUnderCursor, TransientWithParent/*, RectangularRegion*/}; } + QVector supportedModes() const override; bool onClickGrabSupported() const override; protected: diff --git a/src/PlatformBackends/KWinWaylandImageGrabber.cpp b/src/PlatformBackends/KWinWaylandImageGrabber.cpp --- a/src/PlatformBackends/KWinWaylandImageGrabber.cpp +++ b/src/PlatformBackends/KWinWaylandImageGrabber.cpp @@ -166,3 +166,12 @@ close(pipeFds[1]); } + +QVector KWinWaylandImageGrabber::supportedModes() const +{ + if (QApplication::screens().count() == 1) { + return {CurrentScreen, WindowUnderCursor, TransientWithParent}; + } + + return {FullScreen, CurrentScreen, WindowUnderCursor, TransientWithParent}; +} diff --git a/src/PlatformBackends/X11ImageGrabber.h b/src/PlatformBackends/X11ImageGrabber.h --- a/src/PlatformBackends/X11ImageGrabber.h +++ b/src/PlatformBackends/X11ImageGrabber.h @@ -50,7 +50,7 @@ explicit X11ImageGrabber(QObject * parent = nullptr); ~X11ImageGrabber() override; - QVector supportedModes() const override { return {FullScreen, CurrentScreen, ActiveWindow, WindowUnderCursor, TransientWithParent, RectangularRegion}; } + QVector supportedModes() const override; bool onClickGrabSupported() const override; protected: diff --git a/src/PlatformBackends/X11ImageGrabber.cpp b/src/PlatformBackends/X11ImageGrabber.cpp --- a/src/PlatformBackends/X11ImageGrabber.cpp +++ b/src/PlatformBackends/X11ImageGrabber.cpp @@ -751,3 +751,12 @@ return QPoint(pointerReply->root_x, pointerReply->root_y); } + +QVector X11ImageGrabber::supportedModes() const +{ + if (QApplication::screens().count() == 1) { + return {CurrentScreen, ActiveWindow, WindowUnderCursor, TransientWithParent, RectangularRegion}; + } + + return {FullScreen, CurrentScreen, ActiveWindow, WindowUnderCursor, TransientWithParent, RectangularRegion}; +}