Skip to content

Commit fdebbad

Browse files
committed
Open by prefix: disable on Win10 #165
1 parent e364485 commit fdebbad

File tree

4 files changed

+58
-3
lines changed

4 files changed

+58
-3
lines changed

bin/Notepad2e.exe

512 Bytes
Binary file not shown.

src/Extension/DPIHelper.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,20 @@ BOOL IsWindowsVistaOrGreater()
5151
return bWindowsVistaOrGreater;
5252
}
5353

54+
BOOL IsWindows10OrGreater()
55+
{
56+
#define _WIN32_WINNT_WIN10 0x0A00
57+
58+
static BOOL bInitialized = FALSE;
59+
static BOOL bWindows10OrGreater = FALSE;
60+
if (!bInitialized)
61+
{
62+
bWindows10OrGreater = IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN10), LOBYTE(_WIN32_WINNT_WIN10), 0);
63+
bInitialized = TRUE;
64+
}
65+
return bWindows10OrGreater;
66+
}
67+
5468
BOOL n2e_DPIInitialize()
5569
{
5670
if (IsWindowsVistaOrGreater())

src/Extension/Utils.c

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ UINT iWheelScrollInterval = DEFAULT_WHEEL_SCROLL_INTERVAL_MS;
3939
BOOL bWheelTimerActive = FALSE;
4040
ECSSSettingsMode iCSSSettings = CSS_LESS;
4141
WCHAR wchLastRun[N2E_MAX_PATH_N_CMD_LINE];
42-
BOOL bUsePrefixInOpenDialog = TRUE;
42+
EUsePrefixInOpenDialog iUsePrefixInOpenDialog = UPO_DISABLED;
43+
BOOL bUsePrefixInOpenDialog = FALSE;
4344
ESaveOnLoseFocus iSaveOnLoseFocus = SLF_DISABLED;
4445
BOOL bCtrlWheelScroll = TRUE;
4546
BOOL 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

159193
void 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);

src/Extension/Utils.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ typedef enum
1616
SSM_RECENT = 2
1717
} ESaveSettingsMode;
1818

19+
typedef enum
20+
{
21+
UPO_DISABLED = 0,
22+
UPO_AUTO = 1,
23+
UPO_ENABLED = 2
24+
} EUsePrefixInOpenDialog;
25+
1926
typedef enum
2027
{
2128
SLF_DISABLED = 0,

0 commit comments

Comments
 (0)