[BUG_FIXED] Fix systemtray close crash bug.

[CHANGE_BEHAVIOUR] Change systemtray feature behaviour.

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@560 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
Don Ho 2009-11-12 22:29:51 +00:00
parent 1e41a66293
commit bdbb2711e1
3 changed files with 60 additions and 64 deletions

View File

@ -393,7 +393,7 @@ void Notepad_plus::destroy()
bool Notepad_plus::saveGUIParams()
{
NppGUI & nppGUI = (NppGUI &)(NppParameters::getInstance())->getNppGUI();
nppGUI._statusBarShow = _statusBar.isVisible();
//nppGUI._statusBarShow = _statusBar.isVisible();
nppGUI._toolbarShow = _rebarTop.getIDVisible(REBAR_BAR_TOOLBAR);
nppGUI._toolBarStatus = _toolBar.getState();
@ -9204,10 +9204,14 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
case WM_QUERYENDSESSION:
case WM_CLOSE:
{
if (!_isPrelaunch)
if (_isPrelaunch)
{
_pTrayIco->doTrayIcon(REMOVE);
SendMessage(_hSelf, WM_SYSCOMMAND, SC_MINIMIZE, 0);
}
else
{
if (_pTrayIco)
_pTrayIco->doTrayIcon(REMOVE);
const NppGUI & nppgui = pNppParam->getNppGUI();
Session currentSession;
@ -9256,18 +9260,9 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
if (nppgui._rememberLastSession && _rememberThisSession)
saveSession(currentSession);
if (!_isPrelaunch)
{
//Sends WM_DESTROY, Notepad++ will end
::DestroyWindow(hwnd);
}
else
{
SendMessage(_hSelf, WM_SYSCOMMAND, SC_MINIMIZE, 0);
}
return TRUE;
}
@ -9282,7 +9277,7 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
case WM_SYSCOMMAND:
{
NppGUI & nppgui = (NppGUI &)(pNppParam->getNppGUI());
if ((nppgui._isMinimizedToTray) && (wParam == SC_MINIMIZE))
if ((nppgui._isMinimizedToTray || _isPrelaunch) && (wParam == SC_MINIMIZE))
{
if (!_pTrayIco)
_pTrayIco = new trayIconControler(_hSelf, IDI_M30ICON, IDC_MINIMIZED_TRAY, ::LoadIcon(_hInst, MAKEINTRESOURCE(IDI_M30ICON)), TEXT(""));

View File

@ -164,6 +164,7 @@ notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage] [-nLineNumber] [-cColu
-systemtray : Launch Notepad++ directly in system tray\r\
fullFilePathName : file name to open (absolute or relative path name)\r\
");
void doException(Notepad_plus & notepad_plus_plus);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int)