diff --git a/src/renderer/enlarged-renderer.cpp b/src/renderer/enlarged-renderer.cpp
index bb442c1..2508f63 100644
--- a/src/renderer/enlarged-renderer.cpp
+++ b/src/renderer/enlarged-renderer.cpp
@@ -60,6 +60,46 @@ image_view_on_scroll_event(GtkImageView * view,
     enlarged_renderer->on_scroll_event(direction);
 }
 
+static void
+image_view_on_button_press_event(GtkImageView * view,
+                           GdkEventButton * event,
+                           gpointer user_data) throw()
+{
+    if (0 == user_data)
+    {
+        g_warning("Not an instance of EnlargedRenderer");
+        return;
+    }
+
+    EnlargedRenderer * enlarged_renderer
+        = static_cast<EnlargedRenderer *>(user_data);
+
+    if (event->button == 1 && event->type == GDK_2BUTTON_PRESS)
+    {
+        enlarged_renderer->go_back_to_browser();
+    }
+}
+
+static void
+image_view_on_key_press_event(GtkImageView * view,
+                           GdkEventKey * event,
+                           gpointer user_data) throw()
+{
+    if (0 == user_data)
+    {
+        g_warning("Not an instance of EnlargedRenderer");
+        return;
+    }
+
+    EnlargedRenderer * enlarged_renderer
+        = static_cast<EnlargedRenderer *>(user_data);
+
+    if (event->keyval == GDK_Escape)
+    {
+        enlarged_renderer->go_back_to_browser();
+    }
+}
+
 EnlargedRenderer::EnlargedRenderer() throw() :
     IRenderer(),
     Plugin(),
@@ -228,6 +268,16 @@ EnlargedRenderer::on_pixbuf_maker_async_ready(
             return;
         }
 
+        GdkWindow *window = NULL;
+        g_object_get(GTK_IMAGE_VIEW(imageView_), "window", window, NULL);
+
+        if (GDK_IS_WINDOW(window))
+        {
+            int events = GDK_BUTTON_PRESS_MASK || GDK_KEY_PRESS_MASK;
+            gdk_window_set_events(window,
+                static_cast<GdkEventMask>(events));
+        }
+
         gtk_image_view_set_show_frame(GTK_IMAGE_VIEW(imageView_),
                                       FALSE);
 
@@ -260,6 +310,17 @@ EnlargedRenderer::on_pixbuf_maker_async_ready(
                          "mouse-wheel-scroll",
                          G_CALLBACK(image_view_on_scroll_event),
                          this);
+
+        g_signal_connect(GTK_IMAGE_VIEW(imageView_),
+                         "button-press-event",
+                         G_CALLBACK(image_view_on_button_press_event),
+                         this);
+
+        g_signal_connect(GTK_IMAGE_VIEW(imageView_),
+                         "key-press-event",
+                         G_CALLBACK(image_view_on_key_press_event),
+                         this);
+
     }
 
     if (0 == imageScrollWin_)
@@ -947,4 +1008,14 @@ EnlargedRenderer::prepare_for_first_use() throw()
     firstUse_ = false;
 }
 
+void EnlargedRenderer::go_back_to_browser() throw()
+{
+    RendererRegistry & renderer_registry
+     = application_->get_renderer_registry();
+    const IRendererPtr browser_renderer
+     = renderer_registry.select<BrowserRenderer>();
+
+    browser_renderer->present();
+}
+
 } // namespace Solang
diff --git a/src/renderer/enlarged-renderer.h b/src/renderer/enlarged-renderer.h
index 35b025f..4547845 100644
--- a/src/renderer/enlarged-renderer.h
+++ b/src/renderer/enlarged-renderer.h
@@ -84,6 +84,9 @@ class EnlargedRenderer :
         receive_selector(IRendererSelector & selector,
                          const IRendererPtr & renderer) throw();
 
+        virtual void
+        go_back_to_browser() throw();
+
     protected:
         void
         create_action_group() throw();
