@@ -39,7 +39,8 @@ UINT iWheelScrollInterval = DEFAULT_WHEEL_SCROLL_INTERVAL_MS;
3939BOOL bWheelTimerActive = FALSE;
4040ECSSSettingsMode iCSSSettings = CSS_LESS ;
4141WCHAR wchLastRun [N2E_MAX_PATH_N_CMD_LINE ];
42- BOOL bUsePrefixInOpenDialog = TRUE;
42+ EUsePrefixInOpenDialog iUsePrefixInOpenDialog = UPO_DISABLED ;
43+ BOOL bUsePrefixInOpenDialog = FALSE;
4344ESaveOnLoseFocus iSaveOnLoseFocus = SLF_DISABLED ;
4445BOOL bCtrlWheelScroll = TRUE;
4546BOOL bMoveCaretOnRightClick = TRUE;
@@ -145,7 +146,7 @@ void n2e_LoadINI()
145146 iCSSSettings = IniGetInt (N2E_INI_SECTION , INI_SETTING_CSS_SETTINGS , iCSSSettings );
146147 iShellMenuType = IniGetInt (N2E_INI_SECTION , INI_SETTING_SHELL_MENU_TYPE , iShellMenuType );
147148 iMaxSearchDistance = IniGetInt (N2E_INI_SECTION , INI_SETTING_MAX_SEARCH_DISTANCE , DEFAULT_MAX_SEARCH_DISTANCE_KB ) * BYTES_IN_KB ;
148- bUsePrefixInOpenDialog = IniGetInt (N2E_INI_SECTION , INI_SETTING_OPEN_DIALOG_BY_PREFIX , bUsePrefixInOpenDialog );
149+ iUsePrefixInOpenDialog = IniGetInt (N2E_INI_SECTION , INI_SETTING_OPEN_DIALOG_BY_PREFIX , iUsePrefixInOpenDialog );
149150 bHighlightLineIfWindowInactive = IniGetInt (N2E_INI_SECTION , INI_SETTING_HIGHLIGHT_LINE_IF_WINDOW_INACTIVE , bHighlightLineIfWindowInactive );
150151 iScrollYCaretPolicy = IniGetInt (N2E_INI_SECTION , INI_SETTING_SCROLL_Y_CARET_POLICY , iScrollYCaretPolicy );
151152 bFindWordMatchCase = IniGetInt (N2E_INI_SECTION , INI_SETTING_FIND_WORD_MATCH_CASE , bFindWordMatchCase );
@@ -154,6 +155,39 @@ void n2e_LoadINI()
154155 iEvaluateMathExpression = IniGetInt (N2E_INI_SECTION , INI_SETTING_MATH_EVAL , iEvaluateMathExpression );
155156 iShowLanguageInTitle = IniGetInt (N2E_INI_SECTION , INI_SETTING_LANGUAGE_INDICATOR , iShowLanguageInTitle );
156157 iWordNavigationMode = IniGetInt (N2E_INI_SECTION , INI_SETTING_WORD_NAVIGATION_MODE , iWordNavigationMode );
158+
159+ if (iUsePrefixInOpenDialog != UPO_AUTO )
160+ {
161+ bUsePrefixInOpenDialog = (iUsePrefixInOpenDialog != UPO_DISABLED );
162+ }
163+ else
164+ {
165+ bUsePrefixInOpenDialog = TRUE;
166+
167+ extern BOOL IsWindows10OrGreater ();
168+ if (IsWindows10OrGreater ())
169+ {
170+ HKEY hKey ;
171+ if (SUCCEEDED (RegOpenKey (HKEY_CURRENT_USER ,
172+ L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoComplete" ,
173+ & hKey )))
174+ {
175+ DWORD dwType = REG_SZ ;
176+ WCHAR wchValue [MAX_PATH ] = { 0 };
177+ DWORD cbValue = sizeof (wchValue );
178+ if (SUCCEEDED (RegQueryValueEx (hKey ,
179+ L"Append Completion" ,
180+ NULL ,
181+ & dwType ,
182+ (LPBYTE )& wchValue ,
183+ & cbValue )))
184+ {
185+ bUsePrefixInOpenDialog = (StrStrI (wchValue , L"yes" ) != wchValue );
186+ }
187+ RegCloseKey (hKey );
188+ }
189+ }
190+ }
157191}
158192
159193void n2e_SaveINI ()
@@ -165,7 +199,7 @@ void n2e_SaveINI()
165199 IniSetInt (N2E_INI_SECTION , INI_SETTING_CSS_SETTINGS , iCSSSettings );
166200 IniSetInt (N2E_INI_SECTION , INI_SETTING_SHELL_MENU_TYPE , iShellMenuType );
167201 IniSetInt (N2E_INI_SECTION , INI_SETTING_MAX_SEARCH_DISTANCE , iMaxSearchDistance / BYTES_IN_KB );
168- IniSetInt (N2E_INI_SECTION , INI_SETTING_OPEN_DIALOG_BY_PREFIX , bUsePrefixInOpenDialog );
202+ IniSetInt (N2E_INI_SECTION , INI_SETTING_OPEN_DIALOG_BY_PREFIX , iUsePrefixInOpenDialog );
169203 IniSetInt (N2E_INI_SECTION , INI_SETTING_HIGHLIGHT_LINE_IF_WINDOW_INACTIVE , bHighlightLineIfWindowInactive );
170204 IniSetInt (N2E_INI_SECTION , INI_SETTING_SCROLL_Y_CARET_POLICY , iScrollYCaretPolicy );
171205 IniSetInt (N2E_INI_SECTION , INI_SETTING_FIND_WORD_MATCH_CASE , bFindWordMatchCase );
0 commit comments