# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1080081441 0 # Node ID 222b0f32e7c9aef93b97fd6978e21d3ddf9982b9 # Parent a284fde5d47179414e2fbb56dd97f893d60bac4c More Timer cleanups, but it still stops for no apparent reason! diff -r a284fde5d471 -r 222b0f32e7c9 win/dw.c --- 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; }