Add "Append extension" checkbox to Save As dialog for replacing option "Save dialog file extension filter to *.*" in Preferences dialog.
Fix#9515, close#9732
And use modern CustomFileDialog istead of old FileDialog in Notepad++.
In the file dialog, override window procedure for "OK" button and
file name edit box to check for input.
Transform forward slash file name to a Window path after input.
Fix#9374, close#9403
Save snapshot session immediately when needed (without incuring delay by using ::PostMessage).
Fix#7839 and latest user reported problems in #6133.
Close#9427
Save FileBrowser root folders if it is visible.
When loading a session file (from menu or via the command line),
launch a FileBrowser from scratch and add folders from the file to it.
When loading an auto-saved session, ignore saved FileBrowser folders.
Store roots and selected item of FileBrowser in a Session class.
Add "FileBrowser" node to session XML.
It containts "latestSelectedItem" attribute and "root" child nodes.
This structure corresponds to the one from "config.xml".
Current save session behavior for Folder as Workspace (FaW) is like this:
1. FaW isn't opened, checkbox is greyed-out -> FaW info is not saved in session
2. FaW is opened, checkbox isn't checked -> FaW info isn't saved in session
3. FaW is opened, checkbox is checked -> FaW info is saved in session
Load session behavior:
1. FaW isn't open, session without FaW info -> FaW isn't shown after loading
2. FaW isn't open, session with FaW info -> FaW is shown after loading
3. FaW is open, session without FaW info -> FaW is kept as is without changes
4. FaW is open, session with FaW info -> FaW is shown with new directories from session
Fix#9165, close#9286
If a non-existing file is open as the 1st tab (opened then file is deleted outside of Notepad++), and "Close All BUT this" is run, then current document will be closed.
Fix#8617
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
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
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 you switch between tabs while wrap mode is enable, text jump to another lines.
It's an old bug, fixed in v7.5.9, but it had performance regression so it was reverted in v6.0.0.
It's been one year, and I'm back.
This works whatever the size of the file.
There isn't any performance regression because we don't use SCI_ENSUREVISIBLE scintilla command.
In case wrap option on, The restore position function is done in **twice** steps.
- First step: set selection, set anchor, set xoffset...
- Second step: once Scintilla has send the notification SCN_PAINTED, we can scroll several lines to set the first visible line to the correct wrapped line.
Keep in mind that Line wrapping is a background activity that takes time, specially for huge file.
Fix#2078, fix#2576, fix#3570, fix#4825, fix#4881, close#7781
When there are several files to save, the same doSaveOrNot dialog which cotains 5 buttons (Yes, No, Cancel, Yes to All and No to All) is shown. But if there is only one file to save, then it's better to not show Yes to All and No to All buttons to make a consistent user interface.
Fix#7762
The issue:
While running "close all" command the 2nd save dialog is shown for a unsaved cloned doc, but user has repplyed "No" to the unsaved original doc.
This comit make save dialog show once if user's answer is No.
Fix#7523, close#7558
Old behaviour:
While "Close all but This" operation, if user answer Yes or No for some files to Save dialog, then cancel for a file to save dialog, all files will be kept.
New behaviour:
The files for which user has answered for saving will be close, even the cancel answer at the end.
Fix#7553
Description of the Issue
Improve "Close all to the left/right" functionality.
This is an enhancement request. Similar request was made in past #2555, but has been closed during tracker cleanup process.
Steps to Reproduce the Issue
1. Create 4 tabs says (tab 1, tab 2, tab 3, tab 4)
2. Make all the tab dirty (I mean type, something in each tab, but don't save any).
3. Now right click on tab 1 and choose "Close All to the right"
4. Three popup for asking to save file will appear (For tab 4, tab 3 and tab 2)
5. Click "No" for tab 4 and tab 3. And click cancel for tab 2.
Expected Behavior:
After step 5, tab 4 and tab 3 should be closed. And for Remaining tabs, operation should be cancelled.
Actual Behavior:
Nothing happens after step 5.
Same defect reproduction steps are applicable for "Close all to the left".
Fix#7501, close#7502
Fix crash of Folder as Workspace when too many directory changes happen:
Remove limit for amount of queued directory changes: use auto-reset Event instead of Semaphore.
Fix#6005, fix#5907, fix#3740, close#6005