From cdb223d2ced125910dfed55c8164512b9cd2f7df Mon Sep 17 00:00:00 2001 From: Barijaona Ramaholimihaso Date: Sun, 3 Nov 2024 00:54:39 +0300 Subject: [PATCH 1/3] Handle links specifying target="_blank" Have them open in a new tab, as Safari does --- Vienna/Sources/Main window/BrowserTab.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Vienna/Sources/Main window/BrowserTab.swift b/Vienna/Sources/Main window/BrowserTab.swift index 95951a800..419746ff9 100644 --- a/Vienna/Sources/Main window/BrowserTab.swift +++ b/Vienna/Sources/Main window/BrowserTab.swift @@ -354,6 +354,9 @@ extension BrowserTab: WKNavigationDelegate { } else if optionKey { decisionHandler(.cancel) NSApp.appController.open(navigationAction.request.url, inPreferredBrowser: false) + } else if navigationAction.targetFrame == nil { // link with target="_blank" + decisionHandler(.cancel) + NSApp.appController.browser.createNewTabAfterSelected(navigationAction.request.url, inBackground: false, load: true) } else { decisionHandler(.allow) } From 0c73dea478f0f2f00aff3cd138f0300bbb0b2dd5 Mon Sep 17 00:00:00 2001 From: Barijaona Ramaholimihaso Date: Sun, 3 Nov 2024 00:56:48 +0300 Subject: [PATCH 2/3] Fix tab titles Make them more informative during load, especially when tabs are loading in background: display the host name. --- Vienna/Sources/Main window/BrowserTab+Interface.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Vienna/Sources/Main window/BrowserTab+Interface.swift b/Vienna/Sources/Main window/BrowserTab+Interface.swift index 71d2b41af..374cf2789 100644 --- a/Vienna/Sources/Main window/BrowserTab+Interface.swift +++ b/Vienna/Sources/Main window/BrowserTab+Interface.swift @@ -140,13 +140,13 @@ extension BrowserTab { } func updateTabTitle() { - if self.url != webView.url || self.url == nil { + if self.url != webView.url || webView.url == nil { // Currently loading (the first time), webview title not yet correct / available self.title = self.url?.host ?? NSLocalizedString("New Tab", comment: "") } else if let title = self.webView.title, !title.isEmpty { self.title = title - } else { - // Webview is about:blank or empty + } else if (self.title ?? "").isEmpty { + // we haven't yet set a title and Webview is about:blank or empty self.title = NSLocalizedString("New Tab", comment: "") } } From 2721760562e9628fc403d1d2d64ab50bff579393 Mon Sep 17 00:00:00 2001 From: Barijaona Ramaholimihaso Date: Sun, 3 Nov 2024 00:57:03 +0300 Subject: [PATCH 3/3] Remove unnecessary code --- Vienna/Sources/Main window/BrowserTab.swift | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Vienna/Sources/Main window/BrowserTab.swift b/Vienna/Sources/Main window/BrowserTab.swift index 419746ff9..352f9de77 100644 --- a/Vienna/Sources/Main window/BrowserTab.swift +++ b/Vienna/Sources/Main window/BrowserTab.swift @@ -230,17 +230,11 @@ extension BrowserTab: Tab { func back() -> Bool { let couldGoBack = self.webView.goBack() != nil - // title and url observation not triggered by goBack() -> manual setting - self.url = self.webView.url - updateTabTitle() return couldGoBack } func forward() -> Bool { let couldGoForward = self.webView.goForward() != nil - // title observation not triggered by goForware() -> manual setting - self.url = self.webView.url - updateTabTitle() return couldGoForward }