[solang] Quit enlarged mode with Escape



commit d00f2ab22181c4fc9bea1db2c90580deeedf860b
Author: Florent Thévenet <feuloren free fr>
Date:   Sat Apr 3 03:03:14 2010 +0300

    Quit enlarged mode with Escape
    
    Fixes: https://bugzilla.gnome.org/613499

 data/solang-enlarged-renderer.ui   |    1 +
 src/renderer/enlarged-renderer.cpp |   24 ++++++++++++++++++++++++
 src/renderer/enlarged-renderer.h   |    3 +++
 3 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/data/solang-enlarged-renderer.ui b/data/solang-enlarged-renderer.ui
index 58346b3..0efe0a2 100644
--- a/data/solang-enlarged-renderer.ui
+++ b/data/solang-enlarged-renderer.ui
@@ -46,4 +46,5 @@
 	<accelerator action="AccelViewEnlargedZoomIn2"/>
 	<accelerator action="AccelViewEnlargedZoomOut"/>
 	<accelerator action="AccelViewEnlargedZoomOut1"/>
+	<accelerator action="AccelQuitEnlarged"/>
 </ui>
diff --git a/src/renderer/enlarged-renderer.cpp b/src/renderer/enlarged-renderer.cpp
index bb442c1..d017141 100644
--- a/src/renderer/enlarged-renderer.cpp
+++ b/src/renderer/enlarged-renderer.cpp
@@ -491,6 +491,13 @@ EnlargedRenderer::create_action_group() throw()
         Gtk::AccelKey("KP_Subtract"),
         sigc::mem_fun(*this,
                       &EnlargedRenderer::on_action_view_zoom_out));
+
+    actionGroup_->add(
+        Gtk::Action::create(
+            "AccelQuitEnlarged", Gtk::StockID()),
+        Gtk::AccelKey("Escape"),
+        sigc::mem_fun(*this,
+                      &EnlargedRenderer::on_action_quit_enlarged));
 }
 
 PhotoList
@@ -683,6 +690,23 @@ EnlargedRenderer::on_action_go_last() throw()
 }
 
 void
+EnlargedRenderer::on_action_quit_enlarged() throw()
+{
+    RendererRegistry & renderer_registry
+        = application_->get_renderer_registry();
+    const IRendererPtr browser_renderer
+        = renderer_registry.select<BrowserRenderer>();
+
+    if (0 == browser_renderer)
+    {
+        return;
+    }
+
+    browser_renderer->present();
+    // NB: BrowserRenderer::render is a no-op.
+}
+
+void
 EnlargedRenderer::on_action_view_slideshow() throw()
 {
     RendererRegistry & renderer_registry
diff --git a/src/renderer/enlarged-renderer.h b/src/renderer/enlarged-renderer.h
index 35b025f..a3b2087 100644
--- a/src/renderer/enlarged-renderer.h
+++ b/src/renderer/enlarged-renderer.h
@@ -101,6 +101,9 @@ class EnlargedRenderer :
         on_action_go_last() throw();
 
         void
+        on_action_quit_enlarged() throw();
+
+        void
         on_action_view_slideshow() throw();
 
         void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]