From 187f2c4b30d75dd58fdb35145c766d96bfc2e718 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Mon, 2 Sep 2019 13:36:06 +0200 Subject: [PATCH] + chg: preserve file modification timestamp: change from persisted option to on demand save + fix: minor bug fixes --- Versions/build.txt | 2 +- language/np3_de_de/menu_de_de.rc | 2 +- language/np3_en_gb/menu_en_gb.rc | 2 +- language/np3_en_us/menu_en_us.rc | 2 +- res/Notepad3.exe.manifest.conf | 2 +- src/Config/Config.cpp | 2 - src/Dialogs.c | 2 +- src/Edit.c | 26 +++++++++++-- src/Edit.h | 2 +- src/Notepad3.c | 58 ++++++++++++++--------------- src/Notepad3.h | 4 +- src/Notepad3.rc | 1 + src/TypeDefs.h | 1 - src/VersionEx.h | 4 +- themes/Flat/48/Toolbar.bmp | Bin 248886 -> 267318 bytes themes/professional/32/Toolbar.bmp | Bin 114742 -> 118838 bytes 16 files changed, 63 insertions(+), 47 deletions(-) diff --git a/Versions/build.txt b/Versions/build.txt index f2155a43f..96f37f219 100644 --- a/Versions/build.txt +++ b/Versions/build.txt @@ -1 +1 @@ -2612 +2613 diff --git a/language/np3_de_de/menu_de_de.rc b/language/np3_de_de/menu_de_de.rc index d2467ef9e..52c0f4340 100644 --- a/language/np3_de_de/menu_de_de.rc +++ b/language/np3_de_de/menu_de_de.rc @@ -64,7 +64,7 @@ BEGIN MENUITEM "&Kopie speichern...\tCtrl+F6", IDM_FILE_SAVECOPY MENUITEM "&Nur lesend", IDM_FILE_READONLY MENUITEM SEPARATOR - MENUITEM "Keine Anpassung des &Zeitstempels", IDM_FILE_PRESERVE_FILEMODTIME + MENUITEM "Speichern mit Original &Zeitstempel\tCtrl+Alt+F6", IDM_FILE_PRESERVE_FILEMODTIME MENUITEM SEPARATOR MENUITEM "&Verschlüsselungs Passwort...", IDM_SETPASS MENUITEM SEPARATOR diff --git a/language/np3_en_gb/menu_en_gb.rc b/language/np3_en_gb/menu_en_gb.rc index 61e46f736..b2879be43 100644 --- a/language/np3_en_gb/menu_en_gb.rc +++ b/language/np3_en_gb/menu_en_gb.rc @@ -64,7 +64,7 @@ BEGIN MENUITEM "Save &Copy...\tCtrl+F6", IDM_FILE_SAVECOPY MENUITEM "&Read Only", IDM_FILE_READONLY MENUITEM SEPARATOR - MENUITEM "&Preserve File Modification Time", IDM_FILE_PRESERVE_FILEMODTIME + MENUITEM "Save with Original File &Date/Time\tCtrl+Alt+F6", IDM_FILE_PRESERVE_FILEMODTIME MENUITEM SEPARATOR MENUITEM "Set Encr&yption Passphrase...", IDM_SETPASS MENUITEM SEPARATOR diff --git a/language/np3_en_us/menu_en_us.rc b/language/np3_en_us/menu_en_us.rc index c80662357..10361fe28 100644 --- a/language/np3_en_us/menu_en_us.rc +++ b/language/np3_en_us/menu_en_us.rc @@ -64,7 +64,7 @@ BEGIN MENUITEM "Save &Copy...\tCtrl+F6", IDM_FILE_SAVECOPY MENUITEM "&Read Only", IDM_FILE_READONLY MENUITEM SEPARATOR - MENUITEM "&Preserve File Modification Time", IDM_FILE_PRESERVE_FILEMODTIME + MENUITEM "Save with Original File &Date/Time\tCtrl+Alt+F6", IDM_FILE_PRESERVE_FILEMODTIME MENUITEM SEPARATOR MENUITEM "Set Encr&yption Passphrase...", IDM_SETPASS MENUITEM SEPARATOR diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index f9436fdb1..8da667bc4 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 BETA diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index 338a90393..8d8ba6e86 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -911,7 +911,6 @@ void LoadSettings() GET_INT_VALUE_FROM_INISECTION(Bidirectional, Defaults.Bidirectional, 0, 2); // set before GET_BOOL_VALUE_FROM_INISECTION(MuteMessageBeep, false); GET_BOOL_VALUE_FROM_INISECTION(SplitUndoTypingSeqOnLnBreak, false); - GET_BOOL_VALUE_FROM_INISECTION(PreserveOrigFileModifyTime, false); ///~Settings2.IMEInteraction = clampi(IniSectionGetInt(Settings_Section, L"IMEInteraction", Settings2.IMEInteraction), SC_IME_WINDOWED, SC_IME_INLINE); @@ -1382,7 +1381,6 @@ bool SaveSettings(bool bSaveSettingsNow) SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, Bidirectional); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, MuteMessageBeep); SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, SplitUndoTypingSeqOnLnBreak); - SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, PreserveOrigFileModifyTime); ///~IniSectionSetInt(Settings_Section, L"IMEInteraction", Settings2.IMEInteraction); diff --git a/src/Dialogs.c b/src/Dialogs.c index 4557dd63f..c67bd80db 100644 --- a/src/Dialogs.c +++ b/src/Dialogs.c @@ -3322,7 +3322,7 @@ WINDOWPLACEMENT WindowPlacementFromInfo(HWND hwnd, const WININFO* pWinInfo) // void DialogNewWindow(HWND hwnd, bool bSaveOnRunTools, bool bSetCurFile) { - if (bSaveOnRunTools && !FileSave(false, true, false, false)) { return; } + if (bSaveOnRunTools && !FileSave(false, true, false, false, false)) { return; } WCHAR szModuleName[MAX_PATH] = { L'\0' }; GetModuleFileName(NULL, szModuleName, COUNTOF(szModuleName)); diff --git a/src/Edit.c b/src/Edit.c index 6ef0fb462..0588a7771 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -1334,7 +1334,8 @@ bool EditSaveFile( HWND hwnd, LPCWSTR pszFile, EditFileIOStatus* status, - bool bSaveCopy) + bool bSaveCopy, + bool bPreserveTimeStamp) { HANDLE hFile; @@ -1518,7 +1519,7 @@ bool EditSaveFile( } } - if (Settings.PreserveOrigFileModifyTime) { + if (bPreserveTimeStamp) { SetFileTime(hFile, NULL, NULL, &modTime); } CloseHandle(hFile); @@ -6324,6 +6325,7 @@ void EditMarkAllOccurrences(HWND hwnd, bool bForceClear) void EditSelectionMultiSelectAll() { DocPos const iSelSize = SciCall_GetSelText(NULL); + if ((iSelSize > 1)) { char* pszText = AllocMem(iSelSize, HEAP_ZERO_MEMORY); @@ -6341,6 +6343,7 @@ void EditSelectionMultiSelectAll() DocPos const saveTargetBeg = SciCall_GetTargetStart(); DocPos const saveTargetEnd = SciCall_GetTargetEnd(); + if (IsMarkOccurrencesEnabled() && Settings.MarkOccurrencesMatchVisible) { // get visible lines for update @@ -6353,7 +6356,15 @@ void EditSelectionMultiSelectAll() } SciCall_MultipleSelectAddEach(); SciCall_SetMainSelection(0); - SciCall_ScrollRange(SciCall_GetSelectionNAnchor(0), SciCall_GetSelectionNCaret(0)); + DocPos const iMainAnchor = SciCall_GetSelectionNAnchor(0); + DocPos const iMainCaret = SciCall_GetSelectionNCaret(0); + if (iMainAnchor > iMainCaret) { + SciCall_SwapMainAnchorCaret(); + SciCall_ScrollRange(iMainCaret, iMainAnchor); + } + else { + SciCall_ScrollRange(iMainAnchor, iMainCaret); + } SciCall_ChooseCaretX(); SciCall_SetTargetRange(saveTargetBeg, saveTargetEnd); //restore @@ -7128,7 +7139,7 @@ static void _UpdateIndicators(HWND hwnd, const int indicator, const int indicato end = endPos; } while (start < end); - + } //============================================================================= @@ -7156,12 +7167,19 @@ void EditUpdateIndicators(HWND hwnd, DocPos startPos, DocPos endPos, bool bClear _UpdateIndicators(hwnd, INDIC_NP3_HYPERLINK, INDIC_NP3_HYPERLINK_U, pUrlRegEx, startPos, endPos); } + else { + _ClearIndicatorInRange(INDIC_NP3_HYPERLINK, INDIC_NP3_HYPERLINK_U, startPos, endPos); + } if (Settings.ColorDefHotspot) { static const char* pColorRegEx = "#([0-9a-fA-F]){6}"; _UpdateIndicators(hwnd, INDIC_NP3_COLOR_DEF, -1, pColorRegEx, startPos, endPos); } + else { + _ClearIndicatorInRange(INDIC_NP3_COLOR_DEF, INDIC_NP3_COLOR_DWELL, startPos, endPos); + } + EditFinalizeStyling(hwnd, -1); } diff --git a/src/Edit.h b/src/Edit.h index ef126ab08..892d7d512 100644 --- a/src/Edit.h +++ b/src/Edit.h @@ -36,7 +36,7 @@ void EditDetectEOLMode(LPCSTR lpData, DWORD cbData, EditFileIOStatus* status); void EditIndentationStatistic(HWND hwnd, EditFileIOStatus* status); bool EditLoadFile(HWND hwnd, LPWSTR pszFile, bool bSkipUTFDetection, bool bSkipANSICPDetection, bool bForceEncDetection, bool bClearUndoHistory, EditFileIOStatus* status); -bool EditSaveFile(HWND hwnd, LPCWSTR pszFile, EditFileIOStatus* status, bool bSaveCopy); +bool EditSaveFile(HWND hwnd, LPCWSTR pszFile, EditFileIOStatus* status, bool bSaveCopy, bool bPreserveTimeStamp); void EditInvertCase(HWND hwnd); void EditTitleCase(HWND hwnd); diff --git a/src/Notepad3.c b/src/Notepad3.c index 4d189543e..108e58ae6 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -1234,7 +1234,7 @@ HWND InitInstance(HINSTANCE hInstance,LPCWSTR pszCmdLine,int nCmdShow) } SciCall_SetSavePoint(); _SetSaveNeededFlag(true); - FileSave(true, false, false, false); // issued from elevation instances + FileSave(true, false, false, false, false); // issued from elevation instances } if (s_flagJumpTo) { // Jump to position EditJumpTo(Globals.hwndEdit,s_iInitialLine,s_iInitialColumn); @@ -1462,13 +1462,13 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) if (IsWindow(Globals.hwndDlgCustomizeSchemes)) { PostMessage(Globals.hwndDlgCustomizeSchemes, WM_CLOSE, 0, 0); } - if (FileSave(false, true, false, false)) { + if (FileSave(false, true, false, false, false)) { DestroyWindow(hwnd); } break; case WM_QUERYENDSESSION: - if (FileSave(false, true, false, false)) { + if (FileSave(false, true, false, false, false)) { return TRUE; } break; @@ -2946,7 +2946,7 @@ LRESULT MsgChangeNotify(HWND hwnd, WPARAM wParam, LPARAM lParam) else { INT_PTR const answer = InfoBoxLng(MB_YESNO | MB_ICONWARNING, NULL, IDS_MUI_FILECHANGENOTIFY2); if ((IDOK == answer) || (IDYES == answer)) { - FileSave(true, false, false, false); + FileSave(true, false, false, false, false); } } @@ -3052,7 +3052,6 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam) EnableCmd(hmenu,IDM_FILE_READONLY,i); CheckCmd(hmenu,IDM_FILE_READONLY,s_bFileReadOnly); - CheckCmd(hmenu,IDM_FILE_PRESERVE_FILEMODTIME, Settings.PreserveOrigFileModifyTime); EnableCmd(hmenu,IDM_ENCODING_UNICODEREV,!ro); EnableCmd(hmenu,IDM_ENCODING_UNICODE,!ro); @@ -3513,17 +3512,22 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_FILE_SAVE: - FileSave(true,false,false,false); + FileSave(true, false, false, false, false); break; case IDM_FILE_SAVEAS: - FileSave(true,false,true,false); + FileSave(true, false, true, false, false); break; case IDM_FILE_SAVECOPY: - FileSave(true,false,true,true); + FileSave(true, false, true, true, false); + break; + + + case IDM_FILE_PRESERVE_FILEMODTIME: + FileSave(true, false, false, false, true); break; @@ -3571,7 +3575,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) if (!StringCchLenW(Globals.CurrentFile,COUNTOF(Globals.CurrentFile))) break; - if (Settings.SaveBeforeRunningTools && !FileSave(false,true,false,false)) + if (Settings.SaveBeforeRunningTools && !FileSave(false,true,false,false, false)) break; if (StringCchLenW(Globals.CurrentFile,COUNTOF(Globals.CurrentFile))) { @@ -3612,7 +3616,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_FILE_RUN: { - if (Settings.SaveBeforeRunningTools && !FileSave(false, true, false, false)) { + if (Settings.SaveBeforeRunningTools && !FileSave(false, true, false, false, false)) { break; } StringCchCopy(tchMaxPathBuffer,COUNTOF(tchMaxPathBuffer),Globals.CurrentFile); @@ -3623,7 +3627,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) break; case IDM_FILE_OPENWITH: - if (Settings.SaveBeforeRunningTools && !FileSave(false,true,false,false)) + if (Settings.SaveBeforeRunningTools && !FileSave(false, true, false, false, false)) break; OpenWithDlg(hwnd,Globals.CurrentFile); break; @@ -3689,7 +3693,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_FILE_OPENFAV: - if (FileSave(false,true,false,false)) { + if (FileSave(false, true, false, false, false)) { if (FavoritesDlg(hwnd,tchMaxPathBuffer)) { if (PathIsLnkToDirectory(tchMaxPathBuffer,NULL,0)) @@ -3736,7 +3740,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_FILE_RECENT: if (MRU_Count(Globals.pFileMRU) > 0) { - if (FileSave(false, true, false, false)) { + if (FileSave(false, true, false, false, false)) { WCHAR tchFile[MAX_PATH] = { L'\0' }; if (FileMRUDlg(hwnd, tchFile)) { FileLoad(true, false, false, false, true, false, tchFile); @@ -5424,12 +5428,6 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) Settings.SaveBeforeRunningTools = !Settings.SaveBeforeRunningTools; break; - - case IDM_FILE_PRESERVE_FILEMODTIME: - Settings.PreserveOrigFileModifyTime = !Settings.PreserveOrigFileModifyTime; - break; - - case IDM_VIEW_CHANGENOTIFY: if (ChangeNotifyDlg(hwnd)) InstallFileWatching(Globals.CurrentFile); @@ -5540,7 +5538,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case CMD_SHIFTESC: - if (FileSave(true, false, false, false)) { + if (FileSave(true, false, false, false, false)) { PostMessage(hwnd, WM_CLOSE, 0, 0); } break; @@ -6411,6 +6409,8 @@ void HandleDWellStartEnd(const DocPos position, const UINT uid) // ---------------------------------------------------------------------- + if (position < 0) { prevPosition = -1; return; } + //SciCall_SetCursor(SC_NP3_CURSORHAND); int const indicator_id = (_I_HYPERLINK == indicator_type) ? INDIC_NP3_HYPERLINK : INDIC_NP3_COLOR_DEF; @@ -9179,7 +9179,7 @@ static void _SplitUndoTransaction(const int iModType) // bool FileIO(bool fLoad,LPWSTR pszFileName, bool bSkipUnicodeDetect,bool bSkipANSICPDetection, bool bForceEncDetection, bool bSetSavePoint, - EditFileIOStatus* status, bool bSaveCopy) + EditFileIOStatus* status, bool bSaveCopy, bool bPreserveTimeStamp) { WCHAR tch[MAX_PATH+40]; bool fSuccess; @@ -9204,7 +9204,7 @@ bool FileIO(bool fLoad,LPWSTR pszFileName, } Globals.pFileMRU->pszBookMarks[idx] = StrDup(wchBookMarks); } - fSuccess = EditSaveFile(Globals.hwndEdit,pszFileName, status, bSaveCopy); + fSuccess = EditSaveFile(Globals.hwndEdit,pszFileName, status, bSaveCopy, bPreserveTimeStamp); } dwFileAttributes = GetFileAttributes(pszFileName); @@ -9276,7 +9276,7 @@ bool FileLoad(bool bDontSave, bool bNew, bool bReload, if (!bDontSave) { - if (!FileSave(false, true, false, false)) { + if (!FileSave(false, true, false, false, false)) { return false; } } @@ -9387,11 +9387,11 @@ bool FileLoad(bool bDontSave, bool bNew, bool bReload, if (bReload && !FileWatching.MonitoringLog) { _BEGIN_UNDO_ACTION_ - fSuccess = FileIO(true, szFileName, bSkipUnicodeDetect, bSkipANSICPDetection, bForceEncDetection, !bReload , &fioStatus, false); + fSuccess = FileIO(true, szFileName, bSkipUnicodeDetect, bSkipANSICPDetection, bForceEncDetection, !bReload , &fioStatus, false, false); _END_UNDO_ACTION_ } else { - fSuccess = FileIO(true, szFileName, bSkipUnicodeDetect, bSkipANSICPDetection, bForceEncDetection, true, &fioStatus, false); + fSuccess = FileIO(true, szFileName, bSkipUnicodeDetect, bSkipANSICPDetection, bForceEncDetection, true, &fioStatus, false, false); } } @@ -9632,7 +9632,7 @@ bool DoElevatedRelaunch(EditFileIOStatus* pFioStatus) StringCchCopy(p, (MAX_PATH - len), q); } - if (pFioStatus && FileIO(false, szTempFileName, true, true, false, true, pFioStatus, true)) + if (pFioStatus && FileIO(false, szTempFileName, true, true, false, true, pFioStatus, true, false)) { // preserve encoding WCHAR wchEncoding[80]; @@ -9672,7 +9672,7 @@ bool DoElevatedRelaunch(EditFileIOStatus* pFioStatus) // FileSave() // // -bool FileSave(bool bSaveAlways, bool bAsk, bool bSaveAs, bool bSaveCopy) +bool FileSave(bool bSaveAlways, bool bAsk, bool bSaveAs, bool bSaveCopy, bool bPreserveTimeStamp) { bool fSuccess = false; @@ -9762,7 +9762,7 @@ bool FileSave(bool bSaveAlways, bool bAsk, bool bSaveAs, bool bSaveCopy) if (SaveFileDlg(Globals.hwndMain, tchFile, COUNTOF(tchFile), tchInitialDir)) { - fSuccess = FileIO(false, tchFile, true, true, false, true, &fioStatus, bSaveCopy); + fSuccess = FileIO(false, tchFile, true, true, false, true, &fioStatus, bSaveCopy, bPreserveTimeStamp); if (fSuccess) { if (!bSaveCopy) @@ -9786,7 +9786,7 @@ bool FileSave(bool bSaveAlways, bool bAsk, bool bSaveAs, bool bSaveCopy) } } else { - fSuccess = FileIO(false, Globals.CurrentFile, true, true, false, true, &fioStatus, false); + fSuccess = FileIO(false, Globals.CurrentFile, true, true, false, true, &fioStatus, false, bPreserveTimeStamp); } if (fSuccess) diff --git a/src/Notepad3.h b/src/Notepad3.h index a59583d90..f1a2be748 100644 --- a/src/Notepad3.h +++ b/src/Notepad3.h @@ -170,11 +170,11 @@ bool ConsistentIndentationCheck(EditFileIOStatus* fioStatus); bool FileIO(bool fLoad, LPWSTR pszFileName, bool bSkipUnicodeDetect, bool bSkipANSICPDetection, bool bForceEncDetection, bool bSetSavePoint, - EditFileIOStatus* status, bool bSaveCopy); + EditFileIOStatus* status, bool bSaveCopy, bool bPreserveTimeStamp); bool FileLoad(bool bDontSave, bool bNew, bool bReload, bool bSkipUnicodeDetect, bool bSkipANSICPDetection, bool bForceEncDetection, LPCWSTR lpszFile); bool FileRevert(LPCWSTR szFileName, bool); -bool FileSave(bool,bool,bool,bool); +bool FileSave(bool bSaveAlways, bool bAsk, bool bSaveAs, bool bSaveCopy, bool bPreserveTimeStamp); bool OpenFileDlg(HWND hwnd,LPWSTR lpstrFile,int cchFile,LPCWSTR lpstrInitialDir); bool SaveFileDlg(HWND hwnd,LPWSTR lpstrFile,int cchFile,LPCWSTR lpstrInitialDir); diff --git a/src/Notepad3.rc b/src/Notepad3.rc index 53798e3d3..f644e39f3 100644 --- a/src/Notepad3.rc +++ b/src/Notepad3.rc @@ -252,6 +252,7 @@ BEGIN VK_F5, IDM_EDIT_INSERT_LONGDATE, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_F6, IDM_FILE_SAVEAS, VIRTKEY, NOINVERT VK_F6, IDM_FILE_SAVECOPY, VIRTKEY, CONTROL, NOINVERT + VK_F6, IDM_FILE_PRESERVE_FILEMODTIME, VIRTKEY, CONTROL, ALT, NOINVERT VK_F7, IDM_VIEW_SAVESETTINGSNOW, VIRTKEY, NOINVERT VK_F7, CMD_OPENINIFILE, VIRTKEY, CONTROL, NOINVERT VK_F8, IDM_ENCODING_RECODE, VIRTKEY, NOINVERT diff --git a/src/TypeDefs.h b/src/TypeDefs.h index 77beafd60..8985b664b 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -431,7 +431,6 @@ typedef struct _settings_t int CustomSchemesDlgPosY; bool MuteMessageBeep; bool SplitUndoTypingSeqOnLnBreak; - bool PreserveOrigFileModifyTime; RECT PrintMargin; EDITFINDREPLACE EFR_Data; diff --git a/src/VersionEx.h b/src/VersionEx.h index cc8a43a3c..9d3caa90b 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -7,8 +7,8 @@ #define SAPPNAME "Notepad3" #define VERSION_MAJOR 5 #define VERSION_MINOR 19 -#define VERSION_REV 901 -#define VERSION_BUILD 2612 +#define VERSION_REV 902 +#define VERSION_BUILD 2613 #define SCINTILLA_VER 420 #define ONIGURUMA_REGEX_VER 6.9.3 #define UCHARDET_VER 2018.09.27 diff --git a/themes/Flat/48/Toolbar.bmp b/themes/Flat/48/Toolbar.bmp index 889fc511710f134c525d3920d9e4f2c30db6ad29..c8cd23cde8bf7c02d4219aa76e9ab3816ed1cbbc 100644 GIT binary patch delta 22626 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 delta 1267 zcma*n%`e126aes!kMzLUY&QrZESDw@U5D9hWQWwjM?%C&1P8*Q5{b<^a8n1aq+xGJ zxRTI}9vC5e;~%hp0sjCuS>vnoGO3Ry(@y$(@AYLeor^>LVqNd*A5GsN?fpuNVT!R{ zscG%vi9YUPBD`3qX+^JltmSNA8F!Y;W$lmQmGF2Ci1AsS`@cjxKb&wJ=UUfwY?@}p zR}r7Iy0{HgjOxJS?s&{Fj3&#n!bH~P;>I5mz1#W8SUetY&SWxS0_piB!OnjsWV6{Y zfepDh5%C4l&df)37)&Ny3|B_9u%v$_`)ol$J1>!}xcEC#l+Jz6eYOFBZc89L0QkNH zb^w5$NFb*G_@xAP1%Td3Aol?Hg9KIrKp!QLCjk6e0(+5Apj9Z8fK($u+yKN9kZ2Mu z!PN~&2V`z3%u6ZRp_ukd;U>E;M>