diff options
author | Cosimo Cecchi <cosimoc@src.gnome.org> | 2008-02-15 09:10:36 +0800 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@src.gnome.org> | 2008-02-15 09:10:36 +0800 |
commit | 7411f596afe064f52e49e778f81d0e88f0b13d3c (patch) | |
tree | f2e59f258b0fe768a9283e66917580f7c95ebce3 /src/window-commands.c | |
parent | 3bb5f859cf406cec4e562c17afe276db2ef92b4b (diff) | |
download | gsoc2013-epiphany-7411f596afe064f52e49e778f81d0e88f0b13d3c.tar.gz gsoc2013-epiphany-7411f596afe064f52e49e778f81d0e88f0b13d3c.tar.zst gsoc2013-epiphany-7411f596afe064f52e49e778f81d0e88f0b13d3c.zip |
Add Undo/Redo commands to the location entry, both in the context menu
and linked to the main window commands. Bug #171179.
svn path=/trunk/; revision=7945
Diffstat (limited to 'src/window-commands.c')
-rw-r--r-- | src/window-commands.c | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/src/window-commands.c b/src/window-commands.c index 9bc698a67..dd5bd634d 100644 --- a/src/window-commands.c +++ b/src/window-commands.c @@ -355,14 +355,24 @@ window_cmd_edit_undo (GtkAction *action, { GtkWidget *widget; GtkWidget *embed; + GtkWidget *location_entry; widget = gtk_window_get_focus (GTK_WINDOW (window)); - embed = gtk_widget_get_ancestor (widget, EPHY_TYPE_EMBED); - - if (embed) + location_entry = gtk_widget_get_ancestor (widget, EPHY_TYPE_LOCATION_ENTRY); + + if (location_entry) + { + ephy_location_entry_reset (EPHY_LOCATION_ENTRY (location_entry)); + } + else { - ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed), - "cmd_undo"); + embed = gtk_widget_get_ancestor (widget, EPHY_TYPE_EMBED); + + if (embed) + { + ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed), + "cmd_undo"); + } } } @@ -372,17 +382,25 @@ window_cmd_edit_redo (GtkAction *action, { GtkWidget *widget; GtkWidget *embed; + GtkWidget *location_entry; widget = gtk_window_get_focus (GTK_WINDOW (window)); - embed = gtk_widget_get_ancestor (widget, EPHY_TYPE_EMBED); - - if (embed) + location_entry = gtk_widget_get_ancestor (widget, EPHY_TYPE_LOCATION_ENTRY); + + if (location_entry) { - ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed), - "cmd_redo"); + ephy_location_entry_undo_reset (EPHY_LOCATION_ENTRY (location_entry)); + } + else + { + embed = gtk_widget_get_ancestor (widget, EPHY_TYPE_EMBED); + if (embed) + { + ephy_command_manager_do_command (EPHY_COMMAND_MANAGER (embed), + "cmd_redo"); + } } } - void window_cmd_edit_cut (GtkAction *action, EphyWindow *window) |