From a314deeaa3f5521a5ceae631682c953b6d2c9d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vinko=20Ka=C5=A1ljevi=C4=87?= Date: Wed, 15 Jul 2020 18:31:09 +0200 Subject: [PATCH] Add check for empty GEOM variable In case when slurp is used to select part of screen or a window, if user aborts the selection, grimshot will capture the whole screen instead of exiting. This is fixed with check for empty variable. (cherry picked from commit c65cd1cffa5a791202ee913afef40dffdc54e5bc) --- contrib/grimshot | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/contrib/grimshot b/contrib/grimshot index 4ee8d902c..461a5eeff 100755 --- a/contrib/grimshot +++ b/contrib/grimshot @@ -111,6 +111,10 @@ if [ "$ACTION" = "check" ] ; then exit elif [ "$SUBJECT" = "area" ] ; then GEOM=$(slurp -d) + # Check if user exited slurp without selecting the area + if [ -z "$GEOM" ]; then + exit + fi WHAT="Area" elif [ "$SUBJECT" = "active" ] ; then FOCUSED=$(swaymsg -t get_tree | jq -r 'recurse(.nodes[]?, .floating_nodes[]?) | select(.focused)') @@ -126,6 +130,10 @@ elif [ "$SUBJECT" = "output" ] ; then WHAT="$OUTPUT" elif [ "$SUBJECT" = "window" ] ; then GEOM=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp) + # Check if user exited slurp without selecting the area + if [ -z "$GEOM" ]; then + exit + fi WHAT="Window" else die "Unknown subject to take a screen shot from" "$SUBJECT"