diff --git a/Build/Notepad3.ini b/Build/Notepad3.ini index 9662e4903..1ab7e9d54 100644 Binary files a/Build/Notepad3.ini and b/Build/Notepad3.ini differ diff --git a/Versions/build.txt b/Versions/build.txt index 6f2c618b8..a9449958c 100644 --- a/Versions/build.txt +++ b/Versions/build.txt @@ -1 +1 @@ -1335 +1338 diff --git a/language/common_res.h b/language/common_res.h index 38c8be2bc..e52abe3d7 100644 --- a/language/common_res.h +++ b/language/common_res.h @@ -276,6 +276,7 @@ #define IDC_COPYVERSTRG 18090 #define IDC_RICHEDITABOUT 18091 #define IDC_TRANSL_AUTH 18092 +#define IDC_TRANSPARENT 18093 #define CMD_ESCAPE 20000 #define CMD_SHIFTESC 20001 diff --git a/language/np3_af_za/dialogs_af_za.rc b/language/np3_af_za/dialogs_af_za.rc index 95a8550b3..2aa5df0cf 100644 Binary files a/language/np3_af_za/dialogs_af_za.rc and b/language/np3_af_za/dialogs_af_za.rc differ diff --git a/language/np3_be_by/dialogs_be_by.rc b/language/np3_be_by/dialogs_be_by.rc index 02dc5a261..e80617838 100644 Binary files a/language/np3_be_by/dialogs_be_by.rc and b/language/np3_be_by/dialogs_be_by.rc differ diff --git a/language/np3_de_de/dialogs_de_de.rc b/language/np3_de_de/dialogs_de_de.rc index ba8b4420c..25d4145e4 100644 Binary files a/language/np3_de_de/dialogs_de_de.rc and b/language/np3_de_de/dialogs_de_de.rc differ diff --git a/language/np3_en_gb/dialogs_en_gb.rc b/language/np3_en_gb/dialogs_en_gb.rc index d880cb7b7..39e3b6d63 100644 Binary files a/language/np3_en_gb/dialogs_en_gb.rc and b/language/np3_en_gb/dialogs_en_gb.rc differ diff --git a/language/np3_en_us/dialogs_en_us.rc b/language/np3_en_us/dialogs_en_us.rc index ef31d673c..4c9d61ae7 100644 Binary files a/language/np3_en_us/dialogs_en_us.rc and b/language/np3_en_us/dialogs_en_us.rc differ diff --git a/language/np3_es_es/dialogs_es_es.rc b/language/np3_es_es/dialogs_es_es.rc index 422ea1588..9f0d7cf87 100644 Binary files a/language/np3_es_es/dialogs_es_es.rc and b/language/np3_es_es/dialogs_es_es.rc differ diff --git a/language/np3_fr_fr/dialogs_fr_fr.rc b/language/np3_fr_fr/dialogs_fr_fr.rc index 42917abd6..6d667f1c3 100644 Binary files a/language/np3_fr_fr/dialogs_fr_fr.rc and b/language/np3_fr_fr/dialogs_fr_fr.rc differ diff --git a/language/np3_ja_jp/dialogs_ja_jp.rc b/language/np3_ja_jp/dialogs_ja_jp.rc index d343028d3..c6f90c9ef 100644 Binary files a/language/np3_ja_jp/dialogs_ja_jp.rc and b/language/np3_ja_jp/dialogs_ja_jp.rc differ diff --git a/language/np3_nl_nl/dialogs_nl_nl.rc b/language/np3_nl_nl/dialogs_nl_nl.rc index 1789dff4c..ddd62b312 100644 Binary files a/language/np3_nl_nl/dialogs_nl_nl.rc and b/language/np3_nl_nl/dialogs_nl_nl.rc differ diff --git a/language/np3_ru_ru/dialogs_ru_ru.rc b/language/np3_ru_ru/dialogs_ru_ru.rc index 2d3b9688e..a356629f4 100644 Binary files a/language/np3_ru_ru/dialogs_ru_ru.rc and b/language/np3_ru_ru/dialogs_ru_ru.rc differ diff --git a/language/np3_zh_cn/dialogs_zh_cn.rc b/language/np3_zh_cn/dialogs_zh_cn.rc index a4890cc1b..14d046864 100644 Binary files a/language/np3_zh_cn/dialogs_zh_cn.rc and b/language/np3_zh_cn/dialogs_zh_cn.rc differ diff --git a/minipath/src/Helpers.c b/minipath/src/Helpers.c index 8e1c5245c..8c67a61e5 100644 --- a/minipath/src/Helpers.c +++ b/minipath/src/Helpers.c @@ -553,17 +553,11 @@ void DeleteBitmapButton(HWND hwnd,int nCtlId) // // SetWindowTransparentMode() // -void SetWindowTransparentMode(HWND hwnd,BOOL bTransparentMode) +void SetWindowTransparentMode(HWND hwnd, BOOL bTransparentMode, int iOpacityLevel) { if (bTransparentMode) { SetWindowLongPtr(hwnd, GWL_EXSTYLE, GetWindowLongPtr(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED); - - // get opacity level from registry - int iAlphaPercent = IniGetInt(L"Settings2", L"OpacityLevel", 75); - iAlphaPercent = clampi(iAlphaPercent, 0, 100); - - BYTE const bAlpha = (BYTE)MulDiv(iAlphaPercent, 255, 100); - + BYTE const bAlpha = (BYTE)MulDiv(iOpacityLevel, 255, 100); SetLayeredWindowAttributes(hwnd, 0, bAlpha, LWA_ALPHA); } else diff --git a/minipath/src/Helpers.h b/minipath/src/Helpers.h index 4e0d24dbe..aa2217096 100644 --- a/minipath/src/Helpers.h +++ b/minipath/src/Helpers.h @@ -68,7 +68,7 @@ BOOL SetWindowPathTitle(HWND,LPCWSTR); void CenterDlgInParent(HWND); void MakeBitmapButton(HWND hwnd, int nCtlId, HINSTANCE hInstance, WORD uBmpId); void DeleteBitmapButton(HWND,int); -void SetWindowTransparentMode(HWND,BOOL); +void SetWindowTransparentMode(HWND hwnd, BOOL bTransparentMode, int iOpacityLevel); #define StatusSetSimple(hwnd,b) SendMessage(hwnd,SB_SIMPLE,(WPARAM)b,0) BOOL StatusSetText(HWND,UINT,LPCWSTR); diff --git a/minipath/src/minipath.c b/minipath/src/minipath.c index 4e6947b21..116869be1 100644 --- a/minipath/src/minipath.c +++ b/minipath/src/minipath.c @@ -504,8 +504,10 @@ HWND InitInstance(HINSTANCE hInstance,LPWSTR pszCmdLine,int nCmdShow) if (bAlwaysOnTop) SetWindowPos(hwndMain,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); - if (g_bTransparentMode) - SetWindowTransparentMode(hwndMain,TRUE); + if (g_bTransparentMode) { + int const iAlphaPercent = IniGetInt(L"Settings2", L"OpacityLevel", 75); + SetWindowTransparentMode(hwndMain, TRUE, clampi(iAlphaPercent, 0, 100)); + } if (!flagStartAsTrayIcon) { ShowWindow(hwndMain,nCmdShow); @@ -2257,8 +2259,9 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam) case ACC_SWITCHTRANSPARENCY: - g_bTransparentMode = g_bTransparentMode ? 0 : 1; - SetWindowTransparentMode(hwnd,g_bTransparentMode); + g_bTransparentMode = !g_bTransparentMode; + int const iAlphaPercent = IniGetInt(L"Settings2", L"OpacityLevel", 75); + SetWindowTransparentMode(hwndMain, g_bTransparentMode, clampi(iAlphaPercent, 0, 100)); break; diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index d97af7675..11993d34d 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,8 +3,8 @@ - Notepad3 RC_NewMenu + Notepad3 RC NewMenu diff --git a/src/Dialogs.c b/src/Dialogs.c index b6ff62616..a8bcb85d4 100644 --- a/src/Dialogs.c +++ b/src/Dialogs.c @@ -2985,13 +2985,12 @@ bool SetWindowTitle(HWND hwnd, UINT uIDAppName, bool bIsElevated, UINT uIDUntitl // // SetWindowTransparentMode() // -void SetWindowTransparentMode(HWND hwnd, bool bTransparentMode) +void SetWindowTransparentMode(HWND hwnd, bool bTransparentMode, int iOpacityLevel) { if (bTransparentMode) { SetWindowLongPtr(hwnd, GWL_EXSTYLE, GetWindowLongPtr(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED); // get opacity level from registry - int const iAlphaPercent = Settings2.OpacityLevel; - BYTE const bAlpha = (BYTE)MulDiv(iAlphaPercent, 255, 100); + BYTE const bAlpha = (BYTE)MulDiv(iOpacityLevel, 255, 100); SetLayeredWindowAttributes(hwnd, 0, bAlpha, LWA_ALPHA); return; } diff --git a/src/Dialogs.h b/src/Dialogs.h index 8e47c556a..023a603a6 100644 --- a/src/Dialogs.h +++ b/src/Dialogs.h @@ -49,7 +49,7 @@ void DialogAdminExe(HWND hwnd,bool); INT_PTR InfoBoxLng(int iType, LPCWSTR lpstrSetting, int uidMessage, ...); bool SetWindowTitle(HWND hwnd, UINT uIDAppName, bool, UINT uIDUntitled, LPCWSTR lpszFile, int iFormat, bool, UINT uIDReadOnly, bool, LPCWSTR lpszExcerpt); -void SetWindowTransparentMode(HWND hwnd, bool); +void SetWindowTransparentMode(HWND hwnd, bool bTransparentMode, int iOpacityLevel); void CenterDlgInParent(HWND hDlg); void GetDlgPos(HWND hDlg, LPINT xDlg, LPINT yDlg); void SetDlgPos(HWND hDlg, int xDlg, int yDlg); diff --git a/src/Edit.c b/src/Edit.c index 6ae8c51c3..512994ecd 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -5125,6 +5125,8 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA } } + CheckDlgButton(hwnd, IDC_TRANSPARENT, Settings.FindReplaceTransparentMode ? BST_CHECKED : BST_UNCHECKED); + if (!s_bSwitchedFindReplace) { if (Settings.FindReplaceDlgPosX == CW_USEDEFAULT || Settings.FindReplaceDlgPosY == CW_USEDEFAULT) CenterDlgInParent(hwnd); @@ -5137,7 +5139,8 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA CopyMemory(sg_pefrData, &s_efrSave, sizeof(EDITFINDREPLACE)); } _SetSearchFlags(hwnd, sg_pefrData); // sync - s_anyMatch = s_fwrdMatch = NO_MATCH; + s_fwrdMatch = NO_MATCH; + s_anyMatch = (SciCall_IsSelectionRectangle() || SciCall_IsSelectionEmpty() ? NO_MATCH : MATCH); HMENU hmenu = GetSystemMenu(hwnd, false); GetLngString(IDS_MUI_SAVEPOS, tchBuf, COUNTOF(tchBuf)); @@ -5150,6 +5153,11 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA hBrushGreen = CreateSolidBrush(rgbGreenColorRef); hBrushBlue = CreateSolidBrush(rgbBlueColorRef); + // find first occurrence of clip-board text + //if (!SciCall_IsSelectionRectangle() && SciCall_IsSelectionEmpty()) { + // PostMessage(hwnd, WM_COMMAND, MAKELONG(IDOK, 1), 0); + //} + SetTimer(hwnd, IDT_TIMER_MRKALL, USER_TIMER_MINIMUM, MQ_ExecuteNext); } return true; @@ -5220,13 +5228,13 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA case WA_INACTIVE: //~s_InitialTopLine = -1; //~g_bFindReplCopySelOrClip = true; - SetWindowTransparentMode(hwnd, true); + SetWindowTransparentMode(hwnd, Settings.FindReplaceTransparentMode, Settings2.FindReplaceOpacityLevel); break; case WA_CLICKACTIVE: // mouse click activation case WA_ACTIVE: - SetWindowTransparentMode(hwnd, false); + SetWindowTransparentMode(hwnd, false, 100); default: s_fwrdMatch = NO_MATCH; s_InitialSearchStart = SciCall_GetSelectionStart(); @@ -5501,6 +5509,9 @@ INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wParam,LPARA _DelayMarkAll(hwnd, 0, s_InitialSearchStart); break; + case IDC_TRANSPARENT: + Settings.FindReplaceTransparentMode = (IsDlgButtonChecked(hwnd, IDC_TRANSPARENT) == BST_CHECKED); + break; case IDC_REPLACE: case IDC_REPLACEALL: diff --git a/src/Notepad3.c b/src/Notepad3.c index 51fc6614e..a9c9e5b45 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -1023,7 +1023,7 @@ HWND InitInstance(HINSTANCE hInstance,LPCWSTR pszCmdLine,int nCmdShow) } if (Settings.TransparentMode) { - SetWindowTransparentMode(Globals.hwndMain, true); + SetWindowTransparentMode(Globals.hwndMain, true, Settings2.OpacityLevel); } if (s_WinInfo.zoom) { @@ -4927,7 +4927,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_VIEW_TRANSPARENT: Settings.TransparentMode = !Settings.TransparentMode; - SetWindowTransparentMode(hwnd,Settings.TransparentMode); + SetWindowTransparentMode(hwnd,Settings.TransparentMode, Settings2.OpacityLevel); break; case IDM_SET_RENDER_TECH_DEFAULT: @@ -6704,7 +6704,10 @@ void LoadSettings() Settings2.FileLoadWarningMB = clampi(IniSectionGetInt(pIniSection, L"FileLoadWarningMB", Defaults2.FileLoadWarningMB), 0, 2048); Defaults2.OpacityLevel = 75; - Settings2.OpacityLevel = clampi(IniSectionGetInt(pIniSection, L"OpacityLevel", Defaults2.OpacityLevel), 0, 100); + Settings2.OpacityLevel = clampi(IniSectionGetInt(pIniSection, L"OpacityLevel", Defaults2.OpacityLevel), 10, 100); + + Defaults2.FindReplaceOpacityLevel = 50; + Settings2.FindReplaceOpacityLevel = clampi(IniSectionGetInt(pIniSection, L"FindReplaceOpacityLevel", Defaults2.FindReplaceOpacityLevel), 10, 100); Defaults2.FileBrowserPath[0] = L'\0'; IniSectionGetString(pIniSection, L"filebrowser.exe", Defaults2.FileBrowserPath, Settings2.FileBrowserPath, COUNTOF(Settings2.FileBrowserPath)); @@ -6877,6 +6880,7 @@ void LoadSettings() GET_BOOL_VALUE_FROM_INISECTION(AlwaysOnTop, false); GET_BOOL_VALUE_FROM_INISECTION(MinimizeToTray, false); GET_BOOL_VALUE_FROM_INISECTION(TransparentMode, false); + GET_BOOL_VALUE_FROM_INISECTION(FindReplaceTransparentMode, true); GET_INT_VALUE_FROM_INISECTION(RenderingTechnology, Defaults.RenderingTechnology, 0, 3); // set before GET_INT_VALUE_FROM_INISECTION(Bidirectional, Defaults.Bidirectional, 0, 2); // set before ///~Settings2.IMEInteraction = clampi(IniSectionGetInt(pIniSection, L"IMEInteraction", Settings2.IMEInteraction), SC_IME_WINDOWED, SC_IME_INLINE); @@ -7231,6 +7235,7 @@ void SaveSettings(bool bSaveSettingsNow) SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, AlwaysOnTop); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, MinimizeToTray); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, TransparentMode); + SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, FindReplaceTransparentMode); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, RenderingTechnology); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, Bidirectional); ///~IniSectionSetInt(pIniSection, L"IMEInteraction", Settings2.IMEInteraction); diff --git a/src/TypeDefs.h b/src/TypeDefs.h index 1e4c91d13..20773370d 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -317,6 +317,7 @@ typedef struct _settings_t bool AlwaysOnTop; bool MinimizeToTray; bool TransparentMode; + bool FindReplaceTransparentMode; int RenderingTechnology; int Bidirectional; bool ShowToolbar; @@ -352,6 +353,7 @@ typedef struct _settings2_t { int FileLoadWarningMB; int OpacityLevel; + int FindReplaceOpacityLevel; DWORD FileCheckInverval; DWORD AutoReloadTimeout; int IMEInteraction; diff --git a/src/VersionEx.h b/src/VersionEx.h index f4681f197..9bb0fe9f0 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -6,8 +6,8 @@ #define APPNAME "Notepad3" #define VERSION_MAJOR 5 #define VERSION_MINOR 18 -#define VERSION_REV 1030 -#define VERSION_BUILD 1334 +#define VERSION_REV 1031 +#define VERSION_BUILD 1338 #define SCINTILLA_VER 412 #define ONIGMO_REGEX_VER 6.1.3 -#define VERSION_PATCH " RC_NewMenu" +#define VERSION_PATCH " RC NewMenu"