From 78412ee76d5c6f26b872f935feb91554bc3a61c4 Mon Sep 17 00:00:00 2001 From: FalseHonesty Date: Fri, 22 May 2020 21:35:09 -0400 Subject: [PATCH] Browser: An anchor link should open in a new tab when required Previously, clicking on an anchor link (href="#section1") would always scroll to it on the current page, even if control was held or the target="_blank" attribute was set. This fixes that behaviour, and the link will always open in a new tab if required. --- Applications/Browser/Tab.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Applications/Browser/Tab.cpp b/Applications/Browser/Tab.cpp index 9b25870706..c6a19f8c83 100644 --- a/Applications/Browser/Tab.cpp +++ b/Applications/Browser/Tab.cpp @@ -146,15 +146,17 @@ Tab::Tab() }; m_html_widget->on_link_click = [this](auto& href, auto& target, unsigned modifiers) { - if (href.starts_with("#")) { - auto anchor = href.substring_view(1, href.length() - 1); - m_html_widget->scroll_to_anchor(anchor); - } else { + if (target == "_blank" || modifiers == Mod_Ctrl) { auto url = m_html_widget->document()->complete_url(href); - if (target == "_blank" || modifiers == Mod_Ctrl) - on_tab_open_request(url); - else + on_tab_open_request(url); + } else { + if (href.starts_with("#")) { + auto anchor = href.substring_view(1, href.length() - 1); + m_html_widget->scroll_to_anchor(anchor); + } else { + auto url = m_html_widget->document()->complete_url(href); m_html_widget->load(url); + } } };