Blame SOURCES/0029-cheese-Make-widemode-controllable-from-the-app-menu.patch

ecdf9b
From 7ca2edc8abfcba8384455a180a3c2e4f841abdfd Mon Sep 17 00:00:00 2001
ecdf9b
From: Hans de Goede <hdegoede@redhat.com>
ecdf9b
Date: Thu, 13 Jun 2013 09:40:18 +0200
ecdf9b
Subject: [PATCH 29/35] cheese: Make widemode controllable from the app menu
ecdf9b
ecdf9b
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ecdf9b
---
ecdf9b
 src/cheese-main.vala | 23 ++++++++++++++++++++++-
ecdf9b
 1 file changed, 22 insertions(+), 1 deletion(-)
ecdf9b
ecdf9b
diff --git a/src/cheese-main.vala b/src/cheese-main.vala
ecdf9b
index 032e8cb..2adfdc0 100644
ecdf9b
--- a/src/cheese-main.vala
ecdf9b
+++ b/src/cheese-main.vala
ecdf9b
@@ -49,6 +49,7 @@ public class Cheese.Main : Gtk.Application
ecdf9b
         { "shoot", on_shoot },
ecdf9b
         { "mode", on_action_radio, "s", "'photo'", on_mode_change },
ecdf9b
         { "fullscreen", on_action_toggle, null, "false", on_fullscreen_change },
ecdf9b
+        { "widemode", on_action_toggle, null, "false", on_widemode_change },
ecdf9b
         { "effects", on_action_toggle, null, "false", on_effects_change },
ecdf9b
         { "preferences", on_preferences },
ecdf9b
         { "about", on_about },
ecdf9b
@@ -103,6 +104,9 @@ public class Cheese.Main : Gtk.Application
ecdf9b
             item = new GLib.MenuItem (_("_Fullscreen"), "app.fullscreen");
ecdf9b
             item.set_attribute ("accel", "s", "F11");
ecdf9b
             section.append_item (item);
ecdf9b
+            item = new GLib.MenuItem (_("_Wide Mode"), "app.widemode");
ecdf9b
+            item.set_attribute ("accel", "s", "w");
ecdf9b
+            section.append_item (item);
ecdf9b
             section = new GLib.Menu ();
ecdf9b
             menu.append_section (null, section);
ecdf9b
             section.append (_("_Effects"), "app.effects");
ecdf9b
@@ -126,7 +130,7 @@ public class Cheese.Main : Gtk.Application
ecdf9b
       main_window.start_thumbview_monitors ();
ecdf9b
 
ecdf9b
       if (wide)
ecdf9b
-        main_window.set_wide_mode (true);
ecdf9b
+        change_action_state("widemode", true);
ecdf9b
       if (fullscreen)
ecdf9b
         change_action_state("fullscreen", true);
ecdf9b
 
ecdf9b
@@ -324,6 +328,23 @@ public class Cheese.Main : Gtk.Application
ecdf9b
     }
ecdf9b
 
ecdf9b
     /**
ecdf9b
+     * Handle wide mode being toggled on / off.
ecdf9b
+     *
ecdf9b
+     * @param action the action that emitted the signal
ecdf9b
+     * @param value the state to switch to
ecdf9b
+     */
ecdf9b
+    private void on_widemode_change (SimpleAction action, Variant? value)
ecdf9b
+    {
ecdf9b
+        return_if_fail (value != null);
ecdf9b
+
ecdf9b
+        var state = value.get_boolean ();
ecdf9b
+
ecdf9b
+        main_window.set_wide_mode (state);
ecdf9b
+
ecdf9b
+        action.set_state (value);
ecdf9b
+    }
ecdf9b
+
ecdf9b
+    /**
ecdf9b
      * Handle the effects state being changed.
ecdf9b
      *
ecdf9b
      * @param action the action that emitted the signal
ecdf9b
-- 
ecdf9b
1.8.2.1
ecdf9b