attachDefaultDoc now in Scintilla::init().
(fix crash on startup because buffer == NULL) git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@233 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
673c2f3097
commit
01285fbfbc
@ -5533,6 +5533,9 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
|||||||
}
|
}
|
||||||
case WM_CREATE:
|
case WM_CREATE:
|
||||||
{
|
{
|
||||||
|
_fileEditView.init(_hInst, hwnd);
|
||||||
|
MainFileManager->init(this, &_fileEditView); //get it up and running asap.
|
||||||
|
|
||||||
pNppParam->setFontList(hwnd);
|
pNppParam->setFontList(hwnd);
|
||||||
NppGUI & nppGUI = (NppGUI &)pNppParam->getNppGUI();
|
NppGUI & nppGUI = (NppGUI &)pNppParam->getNppGUI();
|
||||||
|
|
||||||
@ -5553,9 +5556,6 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
|||||||
|
|
||||||
_mainEditView.init(_hInst, hwnd);
|
_mainEditView.init(_hInst, hwnd);
|
||||||
_subEditView.init(_hInst, hwnd);
|
_subEditView.init(_hInst, hwnd);
|
||||||
_fileEditView.init(_hInst, hwnd);
|
|
||||||
|
|
||||||
MainFileManager->init(this, &_fileEditView); //get it up and running asap.
|
|
||||||
|
|
||||||
int tabBarStatus = nppGUI._tabStatus;
|
int tabBarStatus = nppGUI._tabStatus;
|
||||||
_toReduceTabBar = ((tabBarStatus & TAB_REDUCE) != 0);
|
_toReduceTabBar = ((tabBarStatus & TAB_REDUCE) != 0);
|
||||||
@ -5678,7 +5678,6 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
|||||||
_dockingManager.init(_hInst, hwnd, &_pMainWindow);
|
_dockingManager.init(_hInst, hwnd, &_pMainWindow);
|
||||||
|
|
||||||
//dynamicCheckMenuAndTB();
|
//dynamicCheckMenuAndTB();
|
||||||
_mainEditView.defineDocType(L_TXT);
|
|
||||||
|
|
||||||
if (nppGUI._isMinimizedToTray)
|
if (nppGUI._isMinimizedToTray)
|
||||||
_pTrayIco = new trayIconControler(_hSelf, IDI_M30ICON, IDC_MINIMIZED_TRAY, ::LoadIcon(_hInst, MAKEINTRESOURCE(IDI_M30ICON)), "");
|
_pTrayIco = new trayIconControler(_hSelf, IDI_M30ICON, IDC_MINIMIZED_TRAY, ::LoadIcon(_hInst, MAKEINTRESOURCE(IDI_M30ICON)), "");
|
||||||
@ -5955,8 +5954,8 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Load initial docs into doctab
|
//Load initial docs into doctab
|
||||||
loadBufferIntoView(_mainEditView.attachDefaultDoc(), MAIN_VIEW);
|
loadBufferIntoView(_mainEditView.getCurrentBufferID(), MAIN_VIEW);
|
||||||
loadBufferIntoView(_subEditView.attachDefaultDoc(), SUB_VIEW);
|
loadBufferIntoView(_subEditView.getCurrentBufferID(), SUB_VIEW);
|
||||||
MainFileManager->increaseDocNr(); //so next doc starts at 2
|
MainFileManager->increaseDocNr(); //so next doc starts at 2
|
||||||
|
|
||||||
::SetFocus(_mainEditView.getHSelf());
|
::SetFocus(_mainEditView.getHSelf());
|
||||||
|
@ -485,10 +485,11 @@ BufferID FileManager::newEmptyDocument() {
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
BufferID FileManager::bufferFromDocument(Document doc, bool dontIncrease) {
|
BufferID FileManager::bufferFromDocument(Document doc, bool dontIncrease, bool dontRef) {
|
||||||
char newTitle[10];
|
char newTitle[10];
|
||||||
strcpy(newTitle, UNTITLED_STR);
|
strcpy(newTitle, UNTITLED_STR);
|
||||||
itoa(_nextNewNumber, newTitle+4, 10);
|
itoa(_nextNewNumber, newTitle+4, 10);
|
||||||
|
if (!dontRef)
|
||||||
_pscratchTilla->execute(SCI_ADDREFDOCUMENT, 0, doc); //set reference for FileManager
|
_pscratchTilla->execute(SCI_ADDREFDOCUMENT, 0, doc); //set reference for FileManager
|
||||||
Buffer * newBuf = new Buffer(this, _nextBufferID, doc, DOC_UNNAMED, newTitle);
|
Buffer * newBuf = new Buffer(this, _nextBufferID, doc, DOC_UNNAMED, newTitle);
|
||||||
BufferID id = (BufferID)newBuf;
|
BufferID id = (BufferID)newBuf;
|
||||||
|
@ -76,7 +76,10 @@ public:
|
|||||||
|
|
||||||
BufferID loadFile(const char * filename, Document doc = NULL); //ID == BUFFER_INVALID on failure. If Doc == NULL, a new file is created, otherwise data is loaded in given document
|
BufferID loadFile(const char * filename, Document doc = NULL); //ID == BUFFER_INVALID on failure. If Doc == NULL, a new file is created, otherwise data is loaded in given document
|
||||||
BufferID newEmptyDocument();
|
BufferID newEmptyDocument();
|
||||||
BufferID bufferFromDocument(Document doc, bool dontIncrease = false); //create Buffer from existing Scintilla, used from new Scintillas. If dontIncrease = true, then the new document number isnt increased afterwards. usefull for temporary but neccesary docs
|
//create Buffer from existing Scintilla, used from new Scintillas. If dontIncrease = true, then the new document number isnt increased afterwards.
|
||||||
|
//usefull for temporary but neccesary docs
|
||||||
|
//If dontRef = false, then no extra reference is added for the doc. Its the responsibility of the caller to do so
|
||||||
|
BufferID bufferFromDocument(Document doc, bool dontIncrease = false, bool dontRef = false);
|
||||||
|
|
||||||
BufferID getBufferFromName(const char * name);
|
BufferID getBufferFromName(const char * name);
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ void ScintillaEditView::init(HINSTANCE hInst, HWND hPere)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Get the startup document and make a buffer for it so it can be accessed like a file
|
//Get the startup document and make a buffer for it so it can be accessed like a file
|
||||||
//attachDefaultDoc(); //Let Notepad_plus do it
|
attachDefaultDoc();
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT ScintillaEditView::scintillaNew_Proc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
|
LRESULT ScintillaEditView::scintillaNew_Proc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
|
||||||
@ -946,7 +946,8 @@ BufferID ScintillaEditView::attachDefaultDoc()
|
|||||||
{
|
{
|
||||||
// get the doc pointer attached (by default) on the view Scintilla
|
// get the doc pointer attached (by default) on the view Scintilla
|
||||||
Document doc = execute(SCI_GETDOCPOINTER, 0, 0);
|
Document doc = execute(SCI_GETDOCPOINTER, 0, 0);
|
||||||
BufferID id = MainFileManager->bufferFromDocument(doc, false);//true); //keep counter on 1
|
execute(SCI_ADDREFDOCUMENT, 0, doc);
|
||||||
|
BufferID id = MainFileManager->bufferFromDocument(doc, false, true);//true, true); //keep counter on 1
|
||||||
Buffer * buf = MainFileManager->getBufferByID(id);
|
Buffer * buf = MainFileManager->getBufferByID(id);
|
||||||
|
|
||||||
MainFileManager->addBufferReference(id, this); //add a reference. Notepad only shows the buffer in tabbar
|
MainFileManager->addBufferReference(id, this); //add a reference. Notepad only shows the buffer in tabbar
|
||||||
|
@ -173,8 +173,6 @@ public:
|
|||||||
defineDocType(L_USER);
|
defineDocType(L_USER);
|
||||||
};*/
|
};*/
|
||||||
|
|
||||||
BufferID attachDefaultDoc();
|
|
||||||
|
|
||||||
void getText(char *dest, int start, int end) const;
|
void getText(char *dest, int start, int end) const;
|
||||||
|
|
||||||
void saveCurrentPos();
|
void saveCurrentPos();
|
||||||
@ -538,6 +536,8 @@ protected:
|
|||||||
static WNDPROC _scintillaDefaultProc;
|
static WNDPROC _scintillaDefaultProc;
|
||||||
CallWindowProcFunc _callWindowProc;
|
CallWindowProcFunc _callWindowProc;
|
||||||
|
|
||||||
|
BufferID attachDefaultDoc();
|
||||||
|
|
||||||
//Store the current buffer so it can be retrieved later
|
//Store the current buffer so it can be retrieved later
|
||||||
BufferID _currentBufferID;
|
BufferID _currentBufferID;
|
||||||
Buffer * _currentBuffer;
|
Buffer * _currentBuffer;
|
||||||
|
Loading…
Reference in New Issue
Block a user