[epiphany] window-commands: Duplicate tab should not alter back/forward list
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] window-commands: Duplicate tab should not alter back/forward list
- Date: Sun, 15 Jan 2017 00:42:01 +0000 (UTC)
commit 1b50480f70fadbd8764b4cf02a0c8dec0368a4be
Author: Michael Catanzaro <mcatanzaro gnome org>
Date: Sat Jan 14 18:40:03 2017 -0600
window-commands: Duplicate tab should not alter back/forward list
When we duplicate a tab, we don't want the new page load to appear in
the back/forward list. Do the same gymnastics with the list that
EphySession performs when restoring a web view.
https://bugzilla.gnome.org/show_bug.cgi?id=772335
src/window-commands.c | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/src/window-commands.c b/src/window-commands.c
index 72f2b7f..bcd4d66 100644
--- a/src/window-commands.c
+++ b/src/window-commands.c
@@ -2236,23 +2236,31 @@ window_cmd_tabs_duplicate (GSimpleAction *action,
gpointer user_data)
{
EphyEmbed *embed, *new_embed;
- EphyWebView *view, *new_view;
+ WebKitWebView *view, *new_view;
WebKitWebViewSessionState *session_state;
+ WebKitBackForwardList *bf_list;
+ WebKitBackForwardListItem *item;
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (user_data));
- view = ephy_embed_get_web_view (embed);
- session_state = webkit_web_view_get_session_state (WEBKIT_WEB_VIEW (view));
+ view = WEBKIT_WEB_VIEW (ephy_embed_get_web_view (embed));
+ session_state = webkit_web_view_get_session_state (view);
new_embed = ephy_shell_new_tab (ephy_shell_get_default (),
EPHY_WINDOW (user_data),
embed,
EPHY_NEW_TAB_APPEND_AFTER | EPHY_NEW_TAB_JUMP);
- new_view = ephy_embed_get_web_view (new_embed);
+ new_view = WEBKIT_WEB_VIEW (ephy_embed_get_web_view (new_embed));
- webkit_web_view_restore_session_state (WEBKIT_WEB_VIEW (new_view), session_state);
+ webkit_web_view_restore_session_state (new_view, session_state);
webkit_web_view_session_state_unref (session_state);
- ephy_web_view_load_url (new_view, webkit_web_view_get_uri (WEBKIT_WEB_VIEW (view)));
+
+ bf_list = webkit_web_view_get_back_forward_list (new_view);
+ item = webkit_back_forward_list_get_current_item (bf_list);
+ if (item)
+ webkit_web_view_go_to_back_forward_list_item (new_view, item);
+ else
+ ephy_web_view_load_url (EPHY_WEB_VIEW (new_view), webkit_web_view_get_uri (view));
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]