@@ -138,7 +138,7 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
138138 hInst = hInstance ; // Store instance handle in our global variable
139139
140140 HWND hWnd = CreateWindow (szWindowClass , szTitle , WS_OVERLAPPED | WS_MINIMIZEBOX | WS_SYSMENU ,
141- CW_USEDEFAULT , 0 , 300 , 240 , NULL , NULL , hInstance , NULL );
141+ CW_USEDEFAULT , 0 , 300 , 258 , NULL , NULL , hInstance , NULL );
142142
143143 if (!hWnd )
144144 {
@@ -236,7 +236,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
236236 ShowWindow (hWnd , TRUE);
237237 break ;
238238 case ID_CONTEXTMENU_EXIT :
239- SendMessage (hWnd , WM_CLOSE , 0 , 0 );
239+ SendMessage (hWnd , WM_FORCE_CLOSE , 0 , 0 );
240240 break ;
241241 case ID_CONTEXTMENU_SETTINGS_MINIMIZE :
242242 settings .minimize = !settings .minimize ;
@@ -269,7 +269,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
269269 }
270270 case IDM_EXIT :
271271 {
272- SendMessage (hWnd , WM_CLOSE , 0 , 0 );
272+ SendMessage (hWnd , WM_FORCE_CLOSE , 0 , 0 );
273273 break ;
274274 }
275275 default :
@@ -292,6 +292,19 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
292292 }
293293 break ;
294294 case WM_CLOSE :
295+ if (settings .minimizeToTray )
296+ {
297+ ShowWindow (hWnd , SW_HIDE );
298+ }
299+ else
300+ {
301+ Shell_NotifyIcon (NIM_DELETE , & sysTray );
302+ shutDown (settings );
303+ DestroyWindow (hWnd );
304+ }
305+ break ;
306+
307+ case WM_FORCE_CLOSE :
295308 Shell_NotifyIcon (NIM_DELETE , & sysTray );
296309 shutDown (settings );
297310 DestroyWindow (hWnd );
@@ -481,6 +494,12 @@ INT_PTR CALLBACK settingsViewProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM
481494 settings .checkUpdateStartup = (BOOL )SendMessage (settingsControls .checkForUpdatesStartup , BM_GETCHECK , 0 , 0 );
482495 break ;
483496
497+ case IDC_CHECK_SETTINGS_TRAY_CLOSE :
498+ EnableWindow (GetDlgItem (hDlg , IDC_BUTTON_SETTINGS_SAVE ), TRUE);
499+ settingsControls .settingsChanged = TRUE;
500+ settings .minimizeToTray = (BOOL )SendMessage (settingsControls .minimizeToTray , BM_GETCHECK , 0 , 0 );
501+ break ;
502+
484503 case IDC_HOTKEY :
485504 EnableWindow (GetDlgItem (hDlg , IDC_BUTTON_SETTINGS_SAVE ), TRUE);
486505 settingsControls .settingsChanged = TRUE;
0 commit comments