[epiphany/wip/gtkaction-to-gaction: 4/4] Port undo/redo and cut/copy/paste to GAction (wip)



commit d6b947a09482ddcbe4da028a6b1fb9605de3a11a
Author: Iulian Radu <iulian radu67 gmail com>
Date:   Sat May 14 18:18:16 2016 +0300

    Port undo/redo and cut/copy/paste to GAction (wip)

 src/ephy-toolbar.c            |    6 ++
 src/ephy-toolbar.h            |    2 +
 src/ephy-window.c             |  197 ++++++++++++++++++++++++++---------------
 src/resources/epiphany-ui.xml |    7 --
 src/resources/gtk/menus.ui    |   12 ++-
 src/window-commands.c         |  141 ++++++++++++++++-------------
 src/window-commands.h         |   35 +++++---
 7 files changed, 242 insertions(+), 158 deletions(-)
---
diff --git a/src/ephy-toolbar.c b/src/ephy-toolbar.c
index b463ad6..131fde5 100644
--- a/src/ephy-toolbar.c
+++ b/src/ephy-toolbar.c
@@ -333,3 +333,9 @@ ephy_toolbar_get_title_box (EphyToolbar *toolbar)
 {
   return toolbar->title_box;
 }
+
+GMenu *
+ephy_toolbar_get_page_menu (EphyToolbar *toolbar)
+{
+  return toolbar->page_menu;
+}
diff --git a/src/ephy-toolbar.h b/src/ephy-toolbar.h
index 8e4dbb1..bde62d6 100644
--- a/src/ephy-toolbar.h
+++ b/src/ephy-toolbar.h
@@ -36,6 +36,8 @@ GtkWidget *ephy_toolbar_get_location_entry (EphyToolbar *toolbar);
 
 EphyTitleBox *ephy_toolbar_get_title_box (EphyToolbar *toolbar);
 
+GMenu *ephy_toolbar_get_page_menu (EphyToolbar *toolbar);
+
 G_END_DECLS
 
 #endif /* EPHY_TOOLBAR_H */
diff --git a/src/ephy-window.c b/src/ephy-window.c
index f646ae6..862da81 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -107,21 +107,6 @@ static const GtkActionEntry ephy_menu_entries [] = {
     G_CALLBACK (window_cmd_file_quit) },
 
   /* Edit actions. */
-
-  { "EditUndo", NULL, N_("_Undo"), "<control>Z", NULL,
-    G_CALLBACK (window_cmd_edit_undo) },
-  { "EditRedo", NULL, N_("Re_do"), "<shift><control>Z", NULL,
-    G_CALLBACK (window_cmd_edit_redo) },
-  { "EditCut", NULL, N_("Cu_t"), "<control>X", NULL,
-    G_CALLBACK (window_cmd_edit_cut) },
-  { "EditCopy", NULL, N_("_Copy"), "<control>C", NULL,
-    G_CALLBACK (window_cmd_edit_copy) },
-  { "EditPaste", NULL, N_("_Paste"), "<control>V", NULL,
-    G_CALLBACK (window_cmd_edit_paste) },
-  { "EditDelete", NULL, NULL, NULL, NULL,
-    G_CALLBACK (window_cmd_edit_delete) },
-  { "EditSelectAll", NULL, N_("Select _All"), "<control>A", NULL,
-    G_CALLBACK (window_cmd_edit_select_all) },
   { "EditBookmarks", NULL, N_("Edit _Bookmarks"), "<control>B", NULL,
     G_CALLBACK (window_cmd_edit_bookmarks) },
   { "EditHistory", NULL, N_("_History"), "<control>H", NULL,
@@ -884,11 +869,11 @@ update_link_actions_sensitivity (EphyWindow *window,
 static void
 update_edit_action_sensitivity (EphyWindow *window, const gchar *action_name, gboolean sensitive, gboolean 
hide)
 {
-  GtkAction *action;
+  GAction *action;
 
-  action = gtk_action_group_get_action (window->action_group, action_name);
-  gtk_action_set_sensitive (action, sensitive);
-  gtk_action_set_visible (action, !hide || sensitive);
+  action = g_action_map_lookup_action (G_ACTION_MAP (window), action_name);
+  g_simple_action_set_enabled (G_SIMPLE_ACTION (action), sensitive);
+  // TODO: do something with hide
 }
 
 typedef struct {
@@ -966,59 +951,51 @@ update_edit_actions_sensitivity (EphyWindow *window, gboolean hide)
 
     view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
 
-    data = can_edit_command_async_data_new (window, "EditCopy", hide);
+    data = can_edit_command_async_data_new (window, "copy", hide);
     webkit_web_view_can_execute_editing_command (view, WEBKIT_EDITING_COMMAND_COPY, NULL,
                                                  (GAsyncReadyCallback)can_edit_command_callback,
                                                  data);
-    data = can_edit_command_async_data_new (window, "EditCut", hide);
+    data = can_edit_command_async_data_new (window, "cut", hide);
     webkit_web_view_can_execute_editing_command (view, WEBKIT_EDITING_COMMAND_CUT, NULL,
                                                  (GAsyncReadyCallback)can_edit_command_callback,
                                                  data);
-    data = can_edit_command_async_data_new (window, "EditPaste", hide);
+    data = can_edit_command_async_data_new (window, "paste", hide);
     webkit_web_view_can_execute_editing_command (view, WEBKIT_EDITING_COMMAND_PASTE, NULL,
                                                  (GAsyncReadyCallback)can_edit_command_callback,
                                                  data);
-    data = can_edit_command_async_data_new (window, "EditUndo", hide);
-    webkit_web_view_can_execute_editing_command (view, "Undo", NULL,
+    data = can_edit_command_async_data_new (window, "undo", hide);
+    webkit_web_view_can_execute_editing_command (view, WEBKIT_EDITING_COMMAND_UNDO, NULL,
                                                  (GAsyncReadyCallback)can_edit_command_callback,
                                                  data);
-    data = can_edit_command_async_data_new (window, "EditRedo", hide);
-    webkit_web_view_can_execute_editing_command (view, "Redo", NULL,
+    data = can_edit_command_async_data_new (window, "redo", hide);
+    webkit_web_view_can_execute_editing_command (view, WEBKIT_EDITING_COMMAND_REDO, NULL,
                                                  (GAsyncReadyCallback)can_edit_command_callback,
                                                  data);
     return;
   }
 
-  update_edit_action_sensitivity (window, "EditCopy", can_copy, hide);
-  update_edit_action_sensitivity (window, "EditCut", can_cut, hide);
-  update_edit_action_sensitivity (window, "EditPaste", can_paste, hide);
-  update_edit_action_sensitivity (window, "EditUndo", can_undo, hide);
-  update_edit_action_sensitivity (window, "EditRedo", can_redo, hide);
+  update_edit_action_sensitivity (window, "cut", can_cut, hide);
+  update_edit_action_sensitivity (window, "copy", can_copy, hide);
+  update_edit_action_sensitivity (window, "paste", can_paste, hide);
+  update_edit_action_sensitivity (window, "undo", can_undo, hide);
+  update_edit_action_sensitivity (window, "redo", can_redo, hide);
 }
 
 static void
 enable_edit_actions_sensitivity (EphyWindow *window)
 {
-  GtkActionGroup *action_group;
-  GtkAction *action;
-
-  action_group = window->action_group;
+  GAction *action;
 
-  action = gtk_action_group_get_action (action_group, "EditCopy");
-  gtk_action_set_sensitive (action, TRUE);
-  gtk_action_set_visible (action, TRUE);
-  action = gtk_action_group_get_action (action_group, "EditCut");
-  gtk_action_set_sensitive (action, TRUE);
-  gtk_action_set_visible (action, TRUE);
-  action = gtk_action_group_get_action (action_group, "EditPaste");
-  gtk_action_set_sensitive (action, TRUE);
-  gtk_action_set_visible (action, TRUE);
-  action = gtk_action_group_get_action (action_group, "EditUndo");
-  gtk_action_set_sensitive (action, TRUE);
-  gtk_action_set_visible (action, TRUE);
-  action = gtk_action_group_get_action (action_group, "EditRedo");
-  gtk_action_set_sensitive (action, TRUE);
-  gtk_action_set_visible (action, TRUE);
+  action = g_action_map_lookup_action (G_ACTION_MAP (window), "cut");
+  g_simple_action_set_enabled (G_SIMPLE_ACTION (action), TRUE);
+  action = g_action_map_lookup_action (G_ACTION_MAP (window), "copy");
+  g_simple_action_set_enabled (G_SIMPLE_ACTION (action), TRUE);
+  action = g_action_map_lookup_action (G_ACTION_MAP (window), "paste");
+  g_simple_action_set_enabled (G_SIMPLE_ACTION (action), TRUE);
+  action = g_action_map_lookup_action (G_ACTION_MAP (window), "undo");
+  g_simple_action_set_enabled (G_SIMPLE_ACTION (action), TRUE);
+  action = g_action_map_lookup_action (G_ACTION_MAP (window), "redo");
+  g_simple_action_set_enabled (G_SIMPLE_ACTION (action), TRUE);
 }
 
 static void
@@ -1484,6 +1461,82 @@ add_action_to_context_menu (WebKitContextMenu *context_menu,
   webkit_context_menu_append (context_menu, webkit_context_menu_item_new (action));
 }
 
+static const gchar *
+action_name_to_label_for_model (GMenuModel *menu_model, const gchar *action_name)
+{
+  GMenuLinkIter *link_iter;
+  gint n_items;
+  gint i, j;
+
+  printf("Finding %s\n", action_name);
+  n_items = g_menu_model_get_n_items (menu_model);
+
+  for (i = 0; i < n_items; i++) {
+    link_iter = g_menu_model_iterate_item_links (menu_model, i);
+    while (g_menu_link_iter_next (link_iter)) {
+      GMenuModel *link_model = NULL;
+      GVariant *action;
+      gint link_model_n_items;
+
+      link_model = g_menu_link_iter_get_value (link_iter);
+      link_model_n_items = g_menu_model_get_n_items (link_model);
+
+      for (j = 0; j < link_model_n_items; j++) {
+        action = g_menu_model_get_item_attribute_value (link_model, j, G_MENU_ATTRIBUTE_ACTION, 
G_VARIANT_TYPE_STRING);
+        printf("g_variant_get_string %s\n", g_variant_get_string (action, NULL));
+        if (g_strcmp0 (strchr (g_variant_get_string (action, NULL), '.') + 1, action_name) == 0) {
+          GVariant *label;
+
+          label = g_menu_model_get_item_attribute_value (link_model, j, G_MENU_ATTRIBUTE_LABEL, 
G_VARIANT_TYPE_STRING);
+
+          return g_variant_get_string (label, NULL);
+        }
+      }
+    }
+  }
+
+  g_assert_not_reached ();
+  return NULL;
+}
+
+static void
+action_activate_cb (GtkAction *action, gpointer user_data)
+{
+  g_action_activate (G_ACTION (user_data), NULL);
+}
+
+static WebKitContextMenuItem*
+webkit_context_menu_item_new_from_gaction (GAction *action, const gchar *label)
+{
+  GtkAction *gtk_action;
+  WebKitContextMenuItem *item;
+
+  gtk_action = gtk_action_new (g_action_get_name (action), label, NULL, NULL);
+  g_signal_connect (gtk_action, "activate",
+                            G_CALLBACK (action_activate_cb), action);
+
+  g_object_bind_property (action, "enabled", gtk_action, "sensitive", G_BINDING_BIDIRECTIONAL);
+
+  item = webkit_context_menu_item_new (gtk_action);
+
+  return item;
+}
+
+static void
+new_add_action_to_context_menu (WebKitContextMenu *context_menu,
+                            GActionGroup      *action_group,
+                            const char        *action_name)
+{
+  GAction *action;
+  EphyToolbar *toolbar;
+  const gchar *label;
+
+  toolbar = EPHY_TOOLBAR (EPHY_WINDOW (action_group)->toolbar);
+  action = g_action_map_lookup_action (G_ACTION_MAP (action_group), action_name);
+  label = action_name_to_label_for_model (G_MENU_MODEL (ephy_toolbar_get_page_menu (toolbar)), action_name);
+  webkit_context_menu_append (context_menu, webkit_context_menu_item_new_from_gaction (action, label));
+}
+
 static void
 add_item_to_context_menu (WebKitContextMenu     *context_menu,
                           WebKitContextMenuItem *item)
@@ -1678,8 +1731,8 @@ populate_context_menu (WebKitWebView       *web_view,
       webkit_context_menu_append (context_menu,
                                   webkit_context_menu_item_new_separator ());
     }
-    add_action_to_context_menu (context_menu,
-                                window->action_group, "EditCopy");
+    new_add_action_to_context_menu (context_menu,
+                                G_ACTION_GROUP (window), "copy");
     if (can_search_selection)
       add_action_to_context_menu (context_menu,
                                   window->popups_action_group, "SearchSelection");
@@ -1715,22 +1768,22 @@ populate_context_menu (WebKitWebView       *web_view,
 
     update_edit_actions_sensitivity (window, FALSE);
 
-    add_action_to_context_menu (context_menu,
-                                window->action_group, "EditUndo");
-    add_action_to_context_menu (context_menu,
-                                window->action_group, "EditRedo");
+    new_add_action_to_context_menu (context_menu,
+                                G_ACTION_GROUP (window), "undo");
+    new_add_action_to_context_menu (context_menu,
+                                G_ACTION_GROUP (window), "redo");
     webkit_context_menu_append (context_menu,
                                 webkit_context_menu_item_new_separator ());
-    add_action_to_context_menu (context_menu,
-                                window->action_group, "EditCut");
-    add_action_to_context_menu (context_menu,
-                                window->action_group, "EditCopy");
-    add_action_to_context_menu (context_menu,
-                                window->action_group, "EditPaste");
+    new_add_action_to_context_menu (context_menu,
+                                G_ACTION_GROUP (window), "cut");
+    new_add_action_to_context_menu (context_menu,
+                                G_ACTION_GROUP (window), "copy");
+    new_add_action_to_context_menu (context_menu,
+                                G_ACTION_GROUP (window), "paste");
     webkit_context_menu_append (context_menu,
                                 webkit_context_menu_item_new_separator ());
-    add_action_to_context_menu (context_menu,
-                                window->action_group, "EditSelectAll");
+    new_add_action_to_context_menu (context_menu,
+                                G_ACTION_GROUP (window), "select-all");
     if (input_methods_item || unicode_item)
       webkit_context_menu_append (context_menu,
                                   webkit_context_menu_item_new_separator ());
@@ -1752,8 +1805,8 @@ populate_context_menu (WebKitWebView       *web_view,
                                   webkit_context_menu_item_new_separator ());
     }
 
-    add_action_to_context_menu (context_menu,
-                                window->action_group, "EditCopy");
+    new_add_action_to_context_menu (context_menu,
+                                G_ACTION_GROUP (window), "copy");
     if (can_search_selection)
       add_action_to_context_menu (context_menu,
                                   window->popups_action_group, "SearchSelection");
@@ -3091,11 +3144,13 @@ static const GActionEntry new_ephy_page_menu_entries [] =
   // { "open", },
   // { "save-as", }
   // { "save-as-application", }
-  // { "undo", },
-  // { "redo", },
-  // { "cut", },
-  // { "copy", },
-  // { "paste", },
+  { "undo", window_cmd_edit_undo },
+  { "redo", window_cmd_edit_redo },
+  { "cut", window_cmd_edit_cut },
+  { "copy", window_cmd_edit_copy },
+  { "paste", window_cmd_edit_paste },
+  { "delete", window_cmd_edit_delete },
+  { "select-all", window_cmd_edit_select_all },
   { "zoom-in", window_cmd_view_zoom_in },
   { "zoom-out", window_cmd_view_zoom_out },
   { "zoom-normal", window_cmd_view_zoom_normal },
diff --git a/src/resources/epiphany-ui.xml b/src/resources/epiphany-ui.xml
index 85e94ad..ea02b19 100644
--- a/src/resources/epiphany-ui.xml
+++ b/src/resources/epiphany-ui.xml
@@ -18,13 +18,6 @@
                 <menuitem name="FileSaveAsMenu" action="FileSaveAs"/>
                 <menuitem name="FileSaveAsApplicationMenu" action="FileSaveAsApplication"/>
                 <separator name="FileSep2"/>
-                <menuitem name="EditUndoMenu" action="EditUndo"/>
-                <menuitem name="EditRedoMenu" action="EditRedo"/>
-                <separator name="EditSep2"/> 
-                <menuitem name="EditCutMenu" action="EditCut"/>
-                <menuitem name="EditCopyMenu" action="EditCopy"/>
-                <menuitem name="EditPasteMenu" action="EditPaste"/>
-                <separator name="EditSep3"/> 
                 <menuitem name="EditPreferencesMenu" action="EditPreferences"/>
                 <separator name="FileSep4"/>
                 <menuitem name="HistoryEditMenu" action="EditHistory"/>
diff --git a/src/resources/gtk/menus.ui b/src/resources/gtk/menus.ui
index a8a4dd8..c9e315b 100644
--- a/src/resources/gtk/menus.ui
+++ b/src/resources/gtk/menus.ui
@@ -17,8 +17,8 @@
       <attribute name="action">win.save-as</attribute>
       <attribute name="label" translatable="yes">Save As _Web Application…</attribute>
       <attribute name="action">win.save-as-application</attribute>
-    </section>
-    <section>
+    </section> -->
+    <section id="undo-redo">
       <item>
         <attribute name="label" translatable="yes">_Undo</attribute>
         <attribute name="action">win.undo</attribute>
@@ -41,7 +41,13 @@
         <attribute name="label" translatable="yes">_Paste</attribute>
         <attribute name="action">win.paste</attribute>
       </item>
-    </section> -->
+    </section>
+    <section>
+      <item>
+        <attribute name="label" translatable="yes">Select _All</attribute>
+        <attribute name="action">win.select-all</attribute>
+      </item>
+    </section>
     <section>
       <item>
         <attribute name="label" translatable="yes">Zoom _In</attribute>
diff --git a/src/window-commands.c b/src/window-commands.c
index d9bf3b4..0c00672 100644
--- a/src/window-commands.c
+++ b/src/window-commands.c
@@ -878,9 +878,60 @@ window_cmd_file_new_incognito_window (GtkAction  *action,
 }
 
 void
-window_cmd_edit_undo (GtkAction  *action,
-                      EphyWindow *window)
+window_cmd_edit_bookmarks (GtkAction  *action,
+                           EphyWindow *window)
+{
+  GtkWidget *bwindow;
+
+  bwindow = ephy_shell_get_bookmarks_editor (ephy_shell_get_default ());
+  gtk_window_present (GTK_WINDOW (bwindow));
+}
+
+void
+window_cmd_edit_history (GtkAction  *action,
+                         EphyWindow *window)
+{
+  GtkWidget *hwindow;
+
+  hwindow = ephy_shell_get_history_window (ephy_shell_get_default ());
+
+  if (GTK_WINDOW (window) != gtk_window_get_transient_for (GTK_WINDOW (hwindow)))
+    gtk_window_set_transient_for (GTK_WINDOW (hwindow),
+                                  GTK_WINDOW (window));
+  gtk_window_present (GTK_WINDOW (hwindow));
+}
+
+void
+window_cmd_edit_preferences (GtkAction  *action,
+                             EphyWindow *window)
+{
+  GtkWindow *dialog;
+
+  dialog = GTK_WINDOW (ephy_shell_get_prefs_dialog (ephy_shell_get_default ()));
+
+  if (GTK_WINDOW (window) != gtk_window_get_transient_for (dialog))
+    gtk_window_set_transient_for (dialog,
+                                  GTK_WINDOW (window));
+
+  gtk_window_present (dialog);
+}
+
+void
+window_cmd_view_fullscreen (GtkAction  *action,
+                            EphyWindow *window)
+{
+  if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
+    gtk_window_fullscreen (GTK_WINDOW (window));
+  else
+    gtk_window_unfullscreen (GTK_WINDOW (window));
+}
+
+void
+window_cmd_edit_undo (GSimpleAction *action,
+                      GVariant      *value,
+                      gpointer       user_data)
 {
+  EphyWindow *window = user_data;
   GtkWidget *widget;
   GtkWidget *embed;
   GtkWidget *location_entry;
@@ -900,9 +951,11 @@ window_cmd_edit_undo (GtkAction  *action,
 }
 
 void
-window_cmd_edit_redo (GtkAction  *action,
-                      EphyWindow *window)
+window_cmd_edit_redo (GSimpleAction *action,
+                      GVariant      *value,
+                      gpointer       user_data)
 {
+  EphyWindow *window = user_data;
   GtkWidget *widget;
   GtkWidget *embed;
   GtkWidget *location_entry;
@@ -920,9 +973,11 @@ window_cmd_edit_redo (GtkAction  *action,
   }
 }
 void
-window_cmd_edit_cut (GtkAction  *action,
-                     EphyWindow *window)
+window_cmd_edit_cut (GSimpleAction *action,
+                     GVariant      *value,
+                     gpointer       user_data)
 {
+  EphyWindow *window = user_data;
   GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
 
   if (GTK_IS_EDITABLE (widget)) {
@@ -937,9 +992,11 @@ window_cmd_edit_cut (GtkAction  *action,
 }
 
 void
-window_cmd_edit_copy (GtkAction  *action,
-                      EphyWindow *window)
+window_cmd_edit_copy (GSimpleAction *action,
+                      GVariant      *value,
+                      gpointer       user_data)
 {
+  EphyWindow *window = user_data;
   GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
 
   if (GTK_IS_EDITABLE (widget)) {
@@ -955,9 +1012,11 @@ window_cmd_edit_copy (GtkAction  *action,
 }
 
 void
-window_cmd_edit_paste (GtkAction  *action,
-                       EphyWindow *window)
+window_cmd_edit_paste (GSimpleAction *action,
+                       GVariant      *value,
+                       gpointer       user_data)
 {
+  EphyWindow *window = user_data;
   GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
 
   if (GTK_IS_EDITABLE (widget)) {
@@ -973,9 +1032,11 @@ window_cmd_edit_paste (GtkAction  *action,
 }
 
 void
-window_cmd_edit_delete (GtkAction  *action,
-                        EphyWindow *window)
+window_cmd_edit_delete (GSimpleAction *action,
+                        GVariant      *value,
+                        gpointer       user_data)
 {
+  EphyWindow *window = user_data;
   GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
 
   if (GTK_IS_EDITABLE (widget)) {
@@ -995,9 +1056,12 @@ window_cmd_edit_delete (GtkAction  *action,
 }
 
 void
-window_cmd_edit_select_all (GtkAction  *action,
-                            EphyWindow *window)
+window_cmd_edit_select_all (GSimpleAction *action,
+                            GVariant      *value,
+                            gpointer       user_data)
 {
+  EphyWindow *window = user_data;
+
   GtkWidget *widget = gtk_window_get_focus (GTK_WINDOW (window));
 
   if (GTK_IS_EDITABLE (widget)) {
@@ -1014,55 +1078,6 @@ window_cmd_edit_select_all (GtkAction  *action,
 }
 
 void
-window_cmd_edit_bookmarks (GtkAction  *action,
-                           EphyWindow *window)
-{
-  GtkWidget *bwindow;
-
-  bwindow = ephy_shell_get_bookmarks_editor (ephy_shell_get_default ());
-  gtk_window_present (GTK_WINDOW (bwindow));
-}
-
-void
-window_cmd_edit_history (GtkAction  *action,
-                         EphyWindow *window)
-{
-  GtkWidget *hwindow;
-
-  hwindow = ephy_shell_get_history_window (ephy_shell_get_default ());
-
-  if (GTK_WINDOW (window) != gtk_window_get_transient_for (GTK_WINDOW (hwindow)))
-    gtk_window_set_transient_for (GTK_WINDOW (hwindow),
-                                  GTK_WINDOW (window));
-  gtk_window_present (GTK_WINDOW (hwindow));
-}
-
-void
-window_cmd_edit_preferences (GtkAction  *action,
-                             EphyWindow *window)
-{
-  GtkWindow *dialog;
-
-  dialog = GTK_WINDOW (ephy_shell_get_prefs_dialog (ephy_shell_get_default ()));
-
-  if (GTK_WINDOW (window) != gtk_window_get_transient_for (dialog))
-    gtk_window_set_transient_for (dialog,
-                                  GTK_WINDOW (window));
-
-  gtk_window_present (dialog);
-}
-
-void
-window_cmd_view_fullscreen (GtkAction  *action,
-                            EphyWindow *window)
-{
-  if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
-    gtk_window_fullscreen (GTK_WINDOW (window));
-  else
-    gtk_window_unfullscreen (GTK_WINDOW (window));
-}
-
-void
 window_cmd_file_print (GSimpleAction *action,
                        GVariant      *value,
                        gpointer       user_data)
diff --git a/src/window-commands.h b/src/window-commands.h
index fff4bb9..dec6665 100644
--- a/src/window-commands.h
+++ b/src/window-commands.h
@@ -44,24 +44,31 @@ void window_cmd_file_send_to              (GtkAction  *action,
                                            EphyWindow *window);
 void window_cmd_file_close_window         (GtkAction  *action,
                                            EphyWindow *window);
-void window_cmd_edit_undo                 (GtkAction  *action,
-                                           EphyWindow *window);
-void window_cmd_edit_redo                 (GtkAction  *action,
-                                           EphyWindow *window);
-void window_cmd_edit_cut                  (GtkAction  *action,
-                                           EphyWindow *window);
-void window_cmd_edit_copy                 (GtkAction  *action,
-                                           EphyWindow *window);
-void window_cmd_edit_paste                (GtkAction  *action,
-                                           EphyWindow *window);
-void window_cmd_edit_delete               (GtkAction  *action,
-                                           EphyWindow *window);
-void window_cmd_edit_select_all           (GtkAction  *action,
-                                           EphyWindow *window);
 void window_cmd_view_encoding             (GtkAction  *action,
                                            EphyWindow *window);
 void window_cmd_view_fullscreen           (GtkAction  *action,
                                            EphyWindow *window);
+void window_cmd_edit_undo                 (GSimpleAction *action,
+                                           GVariant      *value,
+                                           gpointer       user_data);
+void window_cmd_edit_redo                 (GSimpleAction *action,
+                                           GVariant      *value,
+                                           gpointer       user_data);
+void window_cmd_edit_cut                  (GSimpleAction *action,
+                                           GVariant      *value,
+                                           gpointer       user_data);
+void window_cmd_edit_copy                 (GSimpleAction *action,
+                                           GVariant      *value,
+                                           gpointer       user_data);
+void window_cmd_edit_paste                (GSimpleAction *action,
+                                           GVariant      *value,
+                                           gpointer       user_data);
+void window_cmd_edit_delete               (GSimpleAction *action,
+                                           GVariant      *value,
+                                           gpointer       user_data);
+void window_cmd_edit_select_all           (GSimpleAction *action,
+                                           GVariant      *value,
+                                           gpointer       user_data);
 void window_cmd_file_print                (GSimpleAction *action,
                                            GVariant      *value,
                                            gpointer       user_data);


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