diff --git a/data/appdata/org.flameshot.Flameshot.metainfo.xml b/data/appdata/org.flameshot.Flameshot.metainfo.xml
index a4242951c2..32aa6af728 100644
--- a/data/appdata/org.flameshot.Flameshot.metainfo.xml
+++ b/data/appdata/org.flameshot.Flameshot.metainfo.xml
@@ -8,6 +8,9 @@ SPDX-License-Identifier: CC0-1.0
CC0-1.0
GPL-3.0-or-later
Flameshot
+
+ Flameshot Developers
+
@@ -33,9 +36,11 @@ SPDX-License-Identifier: CC0-1.0
https://raw.githubusercontent.com/flameshot-org/flameshot/master/data/img/preview/usageStatic.png
+ Flameshot Usage
https://raw.githubusercontent.com/flameshot-org/flameshot/master/data/img/preview/animatedUsage.gif
+ Animated Flameshot Usage
https://github.com/flameshot-org/flameshot
diff --git a/data/man/man1/flameshot.1 b/data/man/man1/flameshot.1
index 5ca9ec2b1a..68464f23fb 100644
--- a/data/man/man1/flameshot.1
+++ b/data/man/man1/flameshot.1
@@ -147,6 +147,14 @@ Valid for subcommands: config
.RE
.
.PP
+\-\-last-region
+.RS 4
+Repeat screenshot with previously selected region
+.br
+Valid for subcommands: full, gui, screen
+.RE
+.
+.PP
\-m, \-\-maincolor
.RS 4
Define the main UI color
diff --git a/data/shell-completion/flameshot.bash b/data/shell-completion/flameshot.bash
index cdca386956..f9faa14177 100644
--- a/data/shell-completion/flameshot.bash
+++ b/data/shell-completion/flameshot.bash
@@ -11,9 +11,9 @@ _flameshot() {
prev="${COMP_WORDS[COMP_CWORD-1]}"
cur="${COMP_WORDS[COMP_CWORD]}"
cmd="gui full config launcher screen"
- screen_opts="--number --path --delay --raw -p -d -r -n"
- gui_opts="--path --delay --raw -p -d -r"
- full_opts="--path --delay --clipboard --raw -p -d -c -r"
+ screen_opts="--number --path --delay --raw --last-region -p -d -r -n"
+ gui_opts="--path --delay --raw --last-region -p -d -r"
+ full_opts="--path --delay --clipboard --raw --last-region -p -d -c -r"
config_opts="--contrastcolor --filename --maincolor --showhelp --trayicon --autostart -k -f -m -s -t -a"
case "${prev}" in
diff --git a/data/shell-completion/flameshot.fish b/data/shell-completion/flameshot.fish
index 07d96a1e8d..aefd191c3a 100644
--- a/data/shell-completion/flameshot.fish
+++ b/data/shell-completion/flameshot.fish
@@ -78,6 +78,7 @@ __flameshot_complete gui -l "path" -s "p" -rk -d "Output file or
__flameshot_complete gui -l "clipboard" -s "c" -f -d "Copy screenshot to the clipboard"
__flameshot_complete gui -l "delay" -s "d" -frk -d "Delay time in milliseconds"
__flameshot_complete gui -l "region" -frk -d "Screenshot region to select (WxH+X+Y)" -a "(__flameshot_complete_region gui)"
+__flameshot_complete gui -l "last-region" -f -d "Repeat screenshot with previously selected region"
__flameshot_complete gui -l "raw" -s "r" -f -d "Print raw PNG capture"
__flameshot_complete gui -l "print-geometry" -s "g" -f -d "Print geometry of the selection"
__flameshot_complete gui -l "upload" -s "u" -f -d "Upload the screenshot"
@@ -91,6 +92,7 @@ __flameshot_complete screen -l "path" -s "p" -rk -d "Output file or
__flameshot_complete screen -l "clipboard" -s "c" -f -d "Copy screenshot to the clipboard"
__flameshot_complete screen -l "delay" -s "d" -frk -d "Delay time in milliseconds"
__flameshot_complete screen -l "region" -frk -d "Screenshot region to select (WxH+X+Y)" -a "(__flameshot_complete_region screen)"
+__flameshot_complete screen -l "last-region" -f -d "Repeat screenshot with previously selected region"
__flameshot_complete screen -l "raw" -s "r" -f -d "Print raw PNG capture"
__flameshot_complete screen -l "upload" -s "u" -f -d "Upload the screenshot"
__flameshot_complete screen -l "pin" -f -d "Pin the screenshot to the screen"
@@ -101,6 +103,7 @@ __flameshot_complete full -l "path" -s "p" -rk -d "Output file or
__flameshot_complete full -l "clipboard" -s "c" -f -d "Copy screenshot to the clipboard"
__flameshot_complete full -l "delay" -s "d" -frk -d "Delay time in milliseconds"
__flameshot_complete full -l "region" -frk -d "Screenshot region to select (WxH+X+Y)" -a "(__flameshot_complete_region full)"
+__flameshot_complete full -l "last-region" -f -d "Repeat screenshot with previously selected region"
__flameshot_complete full -l "raw" -s "r" -f -d "Print raw PNG capture"
__flameshot_complete full -l "upload" -s "u" -f -d "Upload the screenshot"
diff --git a/data/shell-completion/flameshot.zsh b/data/shell-completion/flameshot.zsh
index 226276ceac..eaa6fb3413 100644
--- a/data/shell-completion/flameshot.zsh
+++ b/data/shell-completion/flameshot.zsh
@@ -21,6 +21,7 @@ _flameshot_gui_opts=(
{-c,--clipboard}'[Save the capture to the clipboard]'
{-d,--delay}'[Delay time in milliseconds]'
"--region[Screenshot region to select ]"
+ "--last-region[Repeat screenshot with previously selected region]"
{-r,--raw}'[Print raw PNG capture]'
{-g,--print-geometry}'[Print geometry of the selection in the format WxH+X+Y. Does nothing if raw is specified]'
{-u,--upload}'[Upload screenshot]'
@@ -42,6 +43,7 @@ _flameshot_screen_opts=(
{-c,--clipboard}'[Save the capture to the clipboard]'
{-d,--delay}'[Delay time in milliseconds]'
"--region[Screenshot region to select ]"
+ "--last-region[Repeat screenshot with previously selected region]"
{-r,--raw}'[Print raw PNG capture]'
{-u,--upload}'[Upload screenshot]'
"--pin[Pin the capture to the screen]"
@@ -60,6 +62,7 @@ _flameshot_full_opts=(
{-c,--clipboard}'[Save the capture to the clipboard]'
{-d,--delay}'[Delay time in milliseconds]'
"--region[Screenshot region to select ]"
+ "--last-region[Repeat screenshot with previously selected region]"
{-r,--raw}'[Print raw PNG capture]'
{-u,--upload}'[Upload screenshot]'
)
diff --git a/external/Qt-Color-Widgets/CMakeLists.txt b/external/Qt-Color-Widgets/CMakeLists.txt
index b9d2775cc4..298a20b267 100644
--- a/external/Qt-Color-Widgets/CMakeLists.txt
+++ b/external/Qt-Color-Widgets/CMakeLists.txt
@@ -14,10 +14,8 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see .
#
-cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
-if ( ${CMAKE_VERSION} VERSION_GREATER "3.12.0")
- cmake_policy(SET CMP0077 NEW)
-endif()
+cmake_minimum_required (VERSION 3.18 FATAL_ERROR)
+cmake_policy(SET CMP0077 NEW)
set(COLORWIDGET_PROJECT_NAME QtColorWidgets)
project(${COLORWIDGET_PROJECT_NAME} CXX)
diff --git a/external/Qt-Color-Widgets/color_widgets_designer_plugin/CMakeLists.txt b/external/Qt-Color-Widgets/color_widgets_designer_plugin/CMakeLists.txt
index 1c0504ef00..aa0799ce29 100644
--- a/external/Qt-Color-Widgets/color_widgets_designer_plugin/CMakeLists.txt
+++ b/external/Qt-Color-Widgets/color_widgets_designer_plugin/CMakeLists.txt
@@ -14,7 +14,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Color Widgets. If not, see .
-cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
+cmake_minimum_required (VERSION 3.18 FATAL_ERROR)
project(QtColorWidgetsPlugin CXX)
diff --git a/external/singleapplication/CMakeLists.txt b/external/singleapplication/CMakeLists.txt
index 85dba84ce0..49ddfa00da 100644
--- a/external/singleapplication/CMakeLists.txt
+++ b/external/singleapplication/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.7.0)
+cmake_minimum_required(VERSION 3.18.0)
project(SingleApplication LANGUAGES CXX)
diff --git a/src/tools/pin/pinwidget.cpp b/src/tools/pin/pinwidget.cpp
index a1a0ace5c0..74f18faacc 100644
--- a/src/tools/pin/pinwidget.cpp
+++ b/src/tools/pin/pinwidget.cpp
@@ -106,8 +106,7 @@ bool PinWidget::scrollEvent(QWheelEvent* event)
{
const auto phase = event->phase();
if (phase == Qt::ScrollPhase::ScrollUpdate
-#if defined(Q_OS_LINUX) || defined(Q_OS_WINDOWS)
- // Linux is getting only NoScrollPhase events.
+#if defined(Q_OS_LINUX) || defined(Q_OS_WINDOWS) || defined(Q_OS_MACOS)
|| phase == Qt::ScrollPhase::NoScrollPhase
#endif
) {
diff --git a/src/utils/screengrabber.cpp b/src/utils/screengrabber.cpp
index 9ce3854f43..8e28750350 100644
--- a/src/utils/screengrabber.cpp
+++ b/src/utils/screengrabber.cpp
@@ -31,13 +31,17 @@ void ScreenGrabber::generalGrimScreenshot(bool& ok, QPixmap& res)
{
#ifdef USE_WAYLAND_GRIM
#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX)
+ QString runDir = QProcessEnvironment::systemEnvironment().value("XDG_RUNTIME_DIR");
+ QString imgPath = runDir + "/flameshot.ppm";
QProcess Process;
QString program = "grim";
QStringList arguments;
- arguments << "-";
+ arguments << "-t" << "ppm" << imgPath;
Process.start(program, arguments);
if (Process.waitForFinished()) {
- res.loadFromData(Process.readAll());
+ res.load(imgPath, "ppm");
+ QFile imgFile(imgPath);
+ imgFile.remove();
ok = true;
} else {
ok = false;