From 218635a035558b0562b009ae9cbd7605d27e823a Mon Sep 17 00:00:00 2001 From: DB p Date: Fri, 11 Apr 2025 12:56:31 +0900 Subject: [PATCH] Add logic to check whether the Korean IME is in use --- Flow.Launcher.Infrastructure/Win32Helper.cs | 4 ++++ .../ViewModels/SettingsPaneGeneralViewModel.cs | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Flow.Launcher.Infrastructure/Win32Helper.cs b/Flow.Launcher.Infrastructure/Win32Helper.cs index 815f31280..2df632545 100644 --- a/Flow.Launcher.Infrastructure/Win32Helper.cs +++ b/Flow.Launcher.Infrastructure/Win32Helper.cs @@ -21,6 +21,10 @@ namespace Flow.Launcher.Infrastructure { #region Blur Handling + public static bool IsWindows11() + { + return Environment.OSVersion.Version.Major >= 10 && Environment.OSVersion.Version.Build >= 22000; + } public static bool IsBackdropSupported() { // Mica and Acrylic only supported Windows 11 22000+ diff --git a/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs b/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs index 2697a508e..13ae65894 100644 --- a/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs +++ b/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Windows.Forms; using CommunityToolkit.Mvvm.Input; using Flow.Launcher.Core; @@ -205,7 +206,18 @@ public partial class SettingsPaneGeneralViewModel : BaseModel } } - public bool KoreanIMERegistryKeyExists => Win32Helper.IsKoreanIMEExist(); + public bool KoreanIMERegistryKeyExists + { + get + { + bool registryKeyExists = Win32Helper.IsKoreanIMEExist(); + bool koreanLanguageInstalled = InputLanguage.InstalledInputLanguages.Cast().Any(lang => lang.Culture.Name.StartsWith("ko")); + bool isWindows11 = Win32Helper.IsWindows11(); + + // Return true if Windows 11 with Korean IME installed, or if the registry key exists + return (isWindows11 && koreanLanguageInstalled) || registryKeyExists; + } + } public bool KoreanIMERegistryValueIsZero {