mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:10:43 +07:00
IJPL-158489 get region from registry on Windows
GitOrigin-RevId: 61fddfcfd460aa2f13c7e44ed4d9a2ea3f81f0a7
This commit is contained in:
committed by
intellij-monorepo-bot
parent
181fdf747d
commit
df8311bb5c
@@ -12,6 +12,7 @@ import com.intellij.openapi.application.impl.RawSwingDispatcher
|
||||
import com.intellij.openapi.ui.DialogWrapper
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory
|
||||
import com.intellij.openapi.ui.popup.util.PopupUtil
|
||||
import com.intellij.openapi.util.SystemInfo
|
||||
import com.intellij.ui.awt.RelativePoint
|
||||
import com.intellij.ui.components.JBLabel
|
||||
import com.intellij.ui.components.panels.VerticalLayout
|
||||
@@ -19,6 +20,8 @@ import com.intellij.ui.dsl.builder.Align
|
||||
import com.intellij.ui.dsl.builder.panel
|
||||
import com.intellij.ui.popup.list.SelectablePanel
|
||||
import com.intellij.util.ui.*
|
||||
import com.sun.jna.platform.win32.Advapi32Util
|
||||
import com.sun.jna.platform.win32.WinReg
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.jetbrains.annotations.Nls
|
||||
import java.awt.BorderLayout
|
||||
@@ -168,6 +171,14 @@ internal fun getLanguageAndRegionDialogIfNeeded(document: EndUserAgreement.Docum
|
||||
val matchingLocale = languageMapping.keys.find { language -> languageMapping[language]?.any { locale.toLanguageTag().contains(it) } == true }
|
||||
?: Locale.ENGLISH
|
||||
var matchingRegion = regionMapping.keys.find { locale.country == regionMapping[it] } ?: Region.NOT_SET
|
||||
if (matchingRegion == Region.NOT_SET && SystemInfo.isWindows) {
|
||||
try {
|
||||
val region = Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, "Control Panel\\International\\Geo", "Name")
|
||||
matchingRegion = regionMapping.keys.find { region == regionMapping[it] } ?: Region.NOT_SET
|
||||
}
|
||||
catch (_: Throwable) {
|
||||
}
|
||||
}
|
||||
if (matchingRegion == Region.NOT_SET && matchingLocale == Locale.ENGLISH) return null
|
||||
return suspend {
|
||||
withContext(RawSwingDispatcher) {
|
||||
|
||||
Reference in New Issue
Block a user