[BUG_FIXED] Fix SaveAll command hanging issue while session snapshot is enabled.
[CHANGE_BEHAVIOUR] Disable session snapshot while command line -nosession is used. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1240 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
924dc4d4ef
commit
4ab4945f0a
@ -128,7 +128,7 @@ Notepad_plus::Notepad_plus(): _mainWindowStatus(0), _pDocTab(NULL), _pEditView(N
|
|||||||
_linkTriggered(true), _isHotspotDblClicked(false), _isFolding(false),
|
_linkTriggered(true), _isHotspotDblClicked(false), _isFolding(false),
|
||||||
_sysMenuEntering(false),
|
_sysMenuEntering(false),
|
||||||
_autoCompleteMain(&_mainEditView), _autoCompleteSub(&_subEditView), _smartHighlighter(&_findReplaceDlg),
|
_autoCompleteMain(&_mainEditView), _autoCompleteSub(&_subEditView), _smartHighlighter(&_findReplaceDlg),
|
||||||
_isFileOpening(false), _rememberThisSession(true), _pAnsiCharPanel(NULL), _pClipboardHistoryPanel(NULL)
|
_isFileOpening(false), _pAnsiCharPanel(NULL), _pClipboardHistoryPanel(NULL)
|
||||||
{
|
{
|
||||||
ZeroMemory(&_prevSelectedRange, sizeof(_prevSelectedRange));
|
ZeroMemory(&_prevSelectedRange, sizeof(_prevSelectedRange));
|
||||||
|
|
||||||
|
@ -422,8 +422,6 @@ private:
|
|||||||
|
|
||||||
vector<pair<int, int> > _hideLinesMarks;
|
vector<pair<int, int> > _hideLinesMarks;
|
||||||
StyleArray _hotspotStyles;
|
StyleArray _hotspotStyles;
|
||||||
bool _rememberThisSession; // always true. except -nosession is indicated on the launch time
|
|
||||||
|
|
||||||
|
|
||||||
AnsiCharPanel *_pAnsiCharPanel;
|
AnsiCharPanel *_pAnsiCharPanel;
|
||||||
ClipboardHistoryPanel *_pClipboardHistoryPanel;
|
ClipboardHistoryPanel *_pClipboardHistoryPanel;
|
||||||
|
@ -63,7 +63,7 @@ void Notepad_plus_Window::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLin
|
|||||||
::SystemParametersInfo(SPI_GETWORKAREA, 0, &workAreaRect, 0);
|
::SystemParametersInfo(SPI_GETWORKAREA, 0, &workAreaRect, 0);
|
||||||
|
|
||||||
NppParameters *pNppParams = NppParameters::getInstance();
|
NppParameters *pNppParams = NppParameters::getInstance();
|
||||||
const NppGUI & nppGUI = pNppParams->getNppGUI();
|
NppGUI & nppGUI = (NppGUI &)pNppParams->getNppGUI();
|
||||||
|
|
||||||
if (cmdLineParams->_isNoPlugin)
|
if (cmdLineParams->_isNoPlugin)
|
||||||
_notepad_plus_plus_core._pluginsManager.disable();
|
_notepad_plus_plus_core._pluginsManager.disable();
|
||||||
@ -131,7 +131,8 @@ void Notepad_plus_Window::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLin
|
|||||||
{
|
{
|
||||||
::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_ALWAYSONTOP, 0);
|
::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_ALWAYSONTOP, 0);
|
||||||
}
|
}
|
||||||
_notepad_plus_plus_core._rememberThisSession = !cmdLineParams->_isNoSession;
|
|
||||||
|
nppGUI._isCmdlineNosessionActivated = cmdLineParams->_isNoSession;
|
||||||
if (nppGUI._rememberLastSession && !cmdLineParams->_isNoSession)
|
if (nppGUI._rememberLastSession && !cmdLineParams->_isNoSession)
|
||||||
{
|
{
|
||||||
_notepad_plus_plus_core.loadLastSession();
|
_notepad_plus_plus_core.loadLastSession();
|
||||||
|
@ -474,7 +474,8 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
|||||||
{
|
{
|
||||||
CmdLineParams *cmdLineParam = (CmdLineParams *)pCopyData->lpData;
|
CmdLineParams *cmdLineParam = (CmdLineParams *)pCopyData->lpData;
|
||||||
pNppParam->setCmdlineParam(*cmdLineParam);
|
pNppParam->setCmdlineParam(*cmdLineParam);
|
||||||
_rememberThisSession = !cmdLineParam->_isNoSession;
|
NppGUI nppGui = (NppGUI)pNppParam->getNppGUI();
|
||||||
|
nppGui._isCmdlineNosessionActivated = cmdLineParam->_isNoSession;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -530,7 +531,9 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
|||||||
case NPPM_INTERNAL_SAVECURRENTSESSION:
|
case NPPM_INTERNAL_SAVECURRENTSESSION:
|
||||||
{
|
{
|
||||||
NppParameters *nppParam = NppParameters::getInstance();
|
NppParameters *nppParam = NppParameters::getInstance();
|
||||||
if (nppParam->getNppGUI()._rememberLastSession && _rememberThisSession)
|
const NppGUI nppGui = nppParam->getNppGUI();
|
||||||
|
|
||||||
|
if (nppGui._rememberLastSession && !nppGui._isCmdlineNosessionActivated)
|
||||||
{
|
{
|
||||||
Session currentSession;
|
Session currentSession;
|
||||||
getCurrentOpenedFiles(currentSession, true);
|
getCurrentOpenedFiles(currentSession, true);
|
||||||
@ -1472,7 +1475,7 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
|||||||
|
|
||||||
saveUserDefineLangs();
|
saveUserDefineLangs();
|
||||||
saveShortcuts();
|
saveShortcuts();
|
||||||
if (nppgui._rememberLastSession && _rememberThisSession)
|
if (nppgui._rememberLastSession && !nppgui._isCmdlineNosessionActivated)
|
||||||
saveSession(currentSession);
|
saveSession(currentSession);
|
||||||
|
|
||||||
//Sends WM_DESTROY, Notepad++ will end
|
//Sends WM_DESTROY, Notepad++ will end
|
||||||
|
@ -109,16 +109,6 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
|||||||
}
|
}
|
||||||
bool isDirty = notification->nmhdr.code == SCN_SAVEPOINTLEFT;
|
bool isDirty = notification->nmhdr.code == SCN_SAVEPOINTLEFT;
|
||||||
buf->setDirty(isDirty);
|
buf->setDirty(isDirty);
|
||||||
|
|
||||||
if (notification->nmhdr.code == SCN_SAVEPOINTREACHED)
|
|
||||||
{
|
|
||||||
bool isSnapshotMode = NppParameters::getInstance()->getNppGUI().isSnapshotMode();
|
|
||||||
if (isSnapshotMode)
|
|
||||||
{
|
|
||||||
MainFileManager->backupCurrentBuffer();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -709,7 +709,7 @@ struct NppGUI
|
|||||||
_tabStatus(TAB_DRAWTOPBAR | TAB_DRAWINACTIVETAB | TAB_DRAGNDROP), _splitterPos(POS_HORIZOTAL),\
|
_tabStatus(TAB_DRAWTOPBAR | TAB_DRAWINACTIVETAB | TAB_DRAGNDROP), _splitterPos(POS_HORIZOTAL),\
|
||||||
_userDefineDlgStatus(UDD_DOCKED), _tabSize(8), _tabReplacedBySpace(false), _fileAutoDetection(cdEnabled), _fileAutoDetectionOriginalValue(_fileAutoDetection),\
|
_userDefineDlgStatus(UDD_DOCKED), _tabSize(8), _tabReplacedBySpace(false), _fileAutoDetection(cdEnabled), _fileAutoDetectionOriginalValue(_fileAutoDetection),\
|
||||||
_checkHistoryFiles(true) ,_enableSmartHilite(true), _disableSmartHiliteTmp(false), _enableTagsMatchHilite(true), _enableTagAttrsHilite(true), _enableHiliteNonHTMLZone(false),\
|
_checkHistoryFiles(true) ,_enableSmartHilite(true), _disableSmartHiliteTmp(false), _enableTagsMatchHilite(true), _enableTagAttrsHilite(true), _enableHiliteNonHTMLZone(false),\
|
||||||
_isMaximized(false), _isMinimizedToTray(false), _rememberLastSession(true), _detectEncoding(true), _backup(bak_none), _useDir(false), _backupDir(TEXT("")),\
|
_isMaximized(false), _isMinimizedToTray(false), _rememberLastSession(true), _isCmdlineNosessionActivated(false), _detectEncoding(true), _backup(bak_none), _useDir(false), _backupDir(TEXT("")),\
|
||||||
_doTaskList(true), _maitainIndent(true), _openSaveDir(dir_followCurrent), _styleMRU(true), _styleURL(0),\
|
_doTaskList(true), _maitainIndent(true), _openSaveDir(dir_followCurrent), _styleMRU(true), _styleURL(0),\
|
||||||
_autocStatus(autoc_both), _autocFromLen(1), _funcParams(false), _definedSessionExt(TEXT("")),\
|
_autocStatus(autoc_both), _autocFromLen(1), _funcParams(false), _definedSessionExt(TEXT("")),\
|
||||||
_doesExistUpdater(false), _caretBlinkRate(250), _caretWidth(1), _enableMultiSelection(false), _shortTitlebar(false), _themeName(TEXT("")), _isLangMenuCompact(false),\
|
_doesExistUpdater(false), _caretBlinkRate(250), _caretWidth(1), _enableMultiSelection(false), _shortTitlebar(false), _themeName(TEXT("")), _isLangMenuCompact(false),\
|
||||||
@ -752,7 +752,8 @@ struct NppGUI
|
|||||||
|
|
||||||
bool _isMaximized;
|
bool _isMaximized;
|
||||||
bool _isMinimizedToTray;
|
bool _isMinimizedToTray;
|
||||||
bool _rememberLastSession;
|
bool _rememberLastSession; // remember next session boolean will be written in the settings
|
||||||
|
bool _isCmdlineNosessionActivated; // used for if -nosession is indicated on the launch time
|
||||||
bool _detectEncoding;
|
bool _detectEncoding;
|
||||||
bool _doTaskList;
|
bool _doTaskList;
|
||||||
bool _maitainIndent;
|
bool _maitainIndent;
|
||||||
@ -815,7 +816,7 @@ struct NppGUI
|
|||||||
generic_string _themeName;
|
generic_string _themeName;
|
||||||
MultiInstSetting _multiInstSetting;
|
MultiInstSetting _multiInstSetting;
|
||||||
bool _fileSwitcherWithoutExtColumn;
|
bool _fileSwitcherWithoutExtColumn;
|
||||||
bool isSnapshotMode() const {return _isSnapshotMode && _rememberLastSession;};
|
bool isSnapshotMode() const {return _isSnapshotMode && _rememberLastSession && !_isCmdlineNosessionActivated;};
|
||||||
bool _isSnapshotMode;
|
bool _isSnapshotMode;
|
||||||
size_t _snapshotBackupTiming;
|
size_t _snapshotBackupTiming;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user