Make workspace (project) & session xml setting files consistent while their file extensions are defined in Preferences dialog:
1. If I specify a session file in the command line (, or if I double-click a session file in the Explorer), not the session file itself is opened, but the session stored in it.
2. If I specify a workspace file in the command line (, or if I double-click a workspace file in the Explorer), not the workspace file itself is opened, but the Project Panel 1 switches to the specified workspace file.
3. If I specify a session file in the `File` menu `Open Ctrl-O`, not the session file itself is opened, but the session stored in it.
4. If I specify a workspace file in the `File` menu `Open Ctrl-O`, not the workspace file itself is opened, but the Project Panel 1 switches to the specified workspace file.
5. If I drag a session file to Npp, not the session file itself is opened, but the session stored in it.
6. If I drag a workspace file to Npp, not the workspace file itself is opened, but the Project Panel 1 switches to the specified workspace file.
That means that once an user extension is defined for these 2 types of file, Notepad++ stores only the session or the workspace but not opens the file itself. The session and workspace setting files are not supposed to be edited manually.
If a defined conflict happens (for example, a non session or workspace setting file with the defined extension), user can always remove the defined extension from Preferences dialog temporarily to open it.
cherry picked from commit 70e746b7a8fe44c9a1e724581ceb3b457138a474
Close#8374, fix#8324
... by using Scintilla's DirectWrite technology.
It allows ligature support if the font needed (for exemple "Fira Code") is installed.
Fix#2287, close#8326Fix#442, fix#675, fix#813, fix#870, fix#1621, fix#3458, fix#4056, fix#4086, fix#4490, fix#8305
Updated according to 924e4b2, 2b345c8, f637901, 2b713fb and 5a95153 commits. Hope nothing missed.
Close#8272
Btw, ``<replace-in-files-confirm-filetype value="For file type :"/>`` is that file type means like ``txt`` or ``type this``?
1. Add file extension automatically while changing file type via combobox in new style dialog.
2. Add file extension automatically for session files and workspace files while saving in new style dialog.
Fix#4876, close#8311, close#8312
Fix Mouse remains in clicked state after resizing docked windows:
The reason for the effect is the mouse hook procedure, which seems to be quite obsolete in contemporary systems: it catches the mouse messages and posts them a second time to the same window. I assume, that was ment to speed up the shifting of the splitters on "prehistoric systems" (That's what you call every system not supporting transparent windows). I see no regression without this hook.
What happens is, the hook catches the WM_LBUTTONUP message and posts it to DockingSplitter::runProc. Here, the hook is released and ReleaseCapture() is called. All fine.
But Windows fails to update its internal key state, when the WM_LBUTTONUP comes as an posted-by-a-hook message. So, if you call GetKeyState(VK_LBUTTON) after ReleaseCapture() in the original code, then it is still in a pressed state. Which confuses the Document Map later.
Fix#8285, close#8286
This PR fixes the following effects:
1. Document map overlay remains visible after minimize to tray.
2. Document map overlay is left behind on current monitor after moving Npp with Windows+Shift+Arrow to another monitor.
3. Document map overlay escapes to another monitor without Npp, when Windows+Shift+Arrow is pressed while the input focus is at the document map.
Fix#1317, close#8280
The current bug: the unconnected network or USB drive while loading a file from it is not detected. As a result Notepad++ opens an empty or uncomplete document.
This commit fix it by not opening anything and showing error box, if file reading fails.
Fix#3381, close#8267
The full story, debated before, is that regular expression searching in a backward direction from the caret position causes matches that the user does not expect. The best thing that was decided to do (group decision) is to fully disable upward searching.
Fix#3640, close#8269
Due to the mysterious reason, change the icon in About box makes application icon display incorrectly (in explorer & on taskbar).
This reverts commit 3a46a6c23d.
I recently went through a bunch of my own source code as well as about half of Mozilla's source code for Firefox. As I found CSS keywords that were not included in Notepad++, I added them locally.
I then merged them with existing keywords, and sorted the combined list alphabetically.
The result is reflected in this pull request.
I hope it helps you and others.
Close#8028
Any setting other than the default setting "for new opened document - UTF8 apply to opened ansi files" will cause C/C++ and other some languages (not for xml though) folding lost on startup.
Fix#4103
"&R" keyboard shortcut for "Replace in Files" is in conflict with one for "Replace", and there's no more available shorcut for "Replace in Files". So let's just remove this useless shortcut.
Fix#3539
Shift the allocation of TreeView item's "lParam" member from TreeView class to the derived class, so "lParam" could be the pointer of anything, not necessary anymore the string pointer.
In the following commit (521ff86665) IDC_FINDNEXT & IDC_FINDPREV are removed from macro record and play. This change broke old macro playing if IDC_FINDNEXT or IDC_FINDPREV was recorded in the macro:
https://community.notepad-plus-plus.org/topic/19011/notepad-v7-8-5-released
Adding IDC_FINDNEXT or IDC_FINDPREV & making them treated as IDOK make fix this broken issue.
This patch adds an active monitor to detect changes on files since Windows isn't honoring FILE_NOTIFY_CHANGE_SIZE or FILE_NOTIFY_CHANGE_LAST_WRITE on ReadDirectoryChangesW correctly if the file writer keep it opened.
This solution is based on GNU tail for Windows does. It does it at
static void tail_forever (struct File_spec *f, int nfiles, double sleep_interval) on tail.c.
Fix#3142, fix#4955, fix#4527, close#7969
If Windows 10 update needs to restart, and Notepad++ has one (some) dirty document(s), and "Enable session snapshot and periodic backup" is not enabled, then WM_ENDSESSION is send with wParam == FALSE, not waiting for WM_QUERYENDSESSION's treatment finish. In this case Notepad++ should quit after saving its current session.
Fix#6086, fix#5831, fix#7854