diff --git a/src/dialogs/ImageOverlay.cpp b/src/dialogs/ImageOverlay.cpp
index f38b29f59c1326a473476bb0d919d634bf4fc9c6..12813d57551e9b1e46eacbff89b5c7ea01b87b3c 100644
--- a/src/dialogs/ImageOverlay.cpp
+++ b/src/dialogs/ImageOverlay.cpp
@@ -28,8 +28,10 @@ ImageOverlay::ImageOverlay(QPixmap image, QWidget *parent)
         setAttribute(Qt::WA_TranslucentBackground, true);
         setAttribute(Qt::WA_DeleteOnClose, true);
         setWindowState(Qt::WindowFullScreen);
+        close_shortcut_ = new QShortcut(QKeySequence(Qt::Key_Escape), this);
 
-        connect(this, SIGNAL(closing()), this, SLOT(close()));
+        connect(close_shortcut_, &QShortcut::activated, this, &ImageOverlay::closing);
+        connect(this, &ImageOverlay::closing, this, &ImageOverlay::close);
 
         raise();
 }
diff --git a/src/dialogs/ImageOverlay.h b/src/dialogs/ImageOverlay.h
index 93b6afdc16da246ee0c013e15288465413d1edf4..9d4187bf83c29b32c937cfdf58c89baa78bb8827 100644
--- a/src/dialogs/ImageOverlay.h
+++ b/src/dialogs/ImageOverlay.h
@@ -8,6 +8,7 @@
 #include <QDialog>
 #include <QMouseEvent>
 #include <QPixmap>
+#include <QShortcut>
 
 namespace dialogs {
 
@@ -32,5 +33,6 @@ private:
         QRect content_;
         QRect close_button_;
         QRect save_button_;
+        QShortcut *close_shortcut_;
 };
 } // dialogs