From 45d51db43e5933d2dd50e99ecc745e23e3fbe076 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 18 Apr 2018 21:01:26 +0200 Subject: [PATCH] [platform] handling 'mailto' URLs in BrowserLauncher.open --- .../intellij/ide/browsers/BrowserLauncherAppless.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncherAppless.kt b/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncherAppless.kt index 722a6c39cfae..afab1e2e8b89 100644 --- a/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncherAppless.kt +++ b/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncherAppless.kt @@ -23,6 +23,7 @@ import org.jetbrains.annotations.Contract import java.awt.Desktop import java.io.File import java.io.IOException +import java.net.URI import java.util.* open class BrowserLauncherAppless : BrowserLauncher() { @@ -100,6 +101,16 @@ open class BrowserLauncherAppless : BrowserLauncher() { private fun openOrBrowse(_url: String, browse: Boolean, project: Project? = null) { val url = signUrl(_url.trim { it <= ' ' }) + if (url.startsWith("mailto:") && Desktop.getDesktop().isSupported(Desktop.Action.MAIL)) { + try { + Desktop.getDesktop().mail(URI(url)) + } + catch (e: Exception) { + LOG.warn("failed to open: $url", e) + } + return + } + if (!BrowserUtil.isAbsoluteURL(url)) { val file = File(url) if (!browse && isDesktopActionSupported(Desktop.Action.OPEN)) {