今までずっとマウスで選択した場合、その範囲がRegionとなっていると認識していたのですマウス選択が解除された後もそこに region-beginning が残るようでelispが思った通りの動作をしてくれません。

選択してる行が存在する場合だけmarkdown-modeで先頭にスペースを4つ追加するという処理をしたかったので

(defun indent-rigidly-4 ()
  (interactive)
  (indent-rigidly (region-beginning) (region-end) 4))

(define-key markdown-mode-map (kbd "TAB")
  '(lambda () (interactive)
     (unless
         (eq (region-beginning) (region-end))
       (indent-rigidly-4))))

としたのですが、これだと選択を解除した後のTabでも更にインデントがついてしまいました。
現在選択してる文字列・行だけを対象に処理するにはどうすれば良いのでしょうか?