changeset 534:222b0f32e7c9

More Timer cleanups, but it still stops for no apparent reason!
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 23 Mar 2004 22:37:21 +0000
parents a284fde5d471
children b0b5b880513a
files win/dw.c
diffstat 1 files changed, 29 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/win/dw.c	Tue Mar 23 21:04:08 2004 +0000
+++ b/win/dw.c	Tue Mar 23 22:37:21 2004 +0000
@@ -2211,7 +2211,8 @@
 				if(cinfo && cinfo->buddy)
 					SendMessage(cinfo->buddy, WM_USER+10, 0, 0);
 
-				KillTimer(hWnd, 100);
+				if(hWnd)
+					KillTimer(hWnd, 100);
 
 				return ret;
 			}
@@ -2335,7 +2336,7 @@
 		case WM_KEYDOWN:
 		case WM_KEYUP:
 			{
-				if(mp1 == VK_UP || mp1 == VK_DOWN)
+				if(hWnd && (mp1 == VK_UP || mp1 == VK_DOWN))
 				{
 					BOOL ret;
 
@@ -3056,8 +3057,6 @@
 					dw_window_set_font(hwndBubble, DefaultFont);
 					dw_window_set_color(hwndBubble, DW_CLR_BLACK, DW_CLR_YELLOW);
 
-					SetTimer(hwnd, 1, 3000, NULL);
-
 					hFont = (HFONT)SendMessage(hwndBubble, WM_GETFONT, 0, 0);
 
 					hdc = GetDC(hwndBubble);
@@ -3277,8 +3276,13 @@
 
 	while(GetMessage(&msg, NULL, 0, 0))
 	{
-		TranslateMessage(&msg);
-		DispatchMessage(&msg);
+		if(msg.hwnd == NULL && msg.message == WM_TIMER)
+			_wndproc(msg.hwnd, msg.message, msg.wParam, msg.lParam);
+		else
+		{
+			TranslateMessage(&msg);
+			DispatchMessage(&msg);
+		}
 	}
 }
 
@@ -3297,8 +3301,13 @@
 		if(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
 		{
 			GetMessage(&msg, NULL, 0, 0);
-			TranslateMessage(&msg);
-			DispatchMessage(&msg);
+			if(msg.hwnd == NULL && msg.message == WM_TIMER)
+				_wndproc(msg.hwnd, msg.message, msg.wParam, msg.lParam);
+			else
+			{
+				TranslateMessage(&msg);
+				DispatchMessage(&msg);
+			}
 		}
 		else
 			Sleep(1);
@@ -3316,8 +3325,13 @@
 
 	if(GetMessage(&msg, NULL, 0, 0))
 	{
-		TranslateMessage(&msg);
-		DispatchMessage(&msg);
+		if(msg.hwnd == NULL && msg.message == WM_TIMER)
+			_wndproc(msg.hwnd, msg.message, msg.wParam, msg.lParam);
+		else
+		{
+			TranslateMessage(&msg);
+			DispatchMessage(&msg);
+		}
 	}
 }
 
@@ -3380,8 +3394,11 @@
 	{
 		if(msg.hwnd == NULL && msg.message == WM_TIMER)
 			_wndproc(msg.hwnd, msg.message, msg.wParam, msg.lParam);
-		TranslateMessage(&msg);
-		DispatchMessage(&msg);
+		else
+		{
+			TranslateMessage(&msg);
+			DispatchMessage(&msg);
+		}
 		if(dialog->done)
 			break;
 	}