# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1043094066 0 # Node ID b955228477b3c3a114d0976b4a7b888813fd4fed # Parent 11b5da6196c2bf88587d24e511b67b66bb98e2e0 Removed the window parameter to dw_timer_connect() it was no needed. diff -r 11b5da6196c2 -r b955228477b3 dw.h --- a/dw.h Mon Jan 20 11:16:27 2003 +0000 +++ b/dw.h Mon Jan 20 20:21:06 2003 +0000 @@ -813,7 +813,7 @@ int API dw_module_load(char *name, HMOD *handle); int API dw_module_symbol(HMOD handle, char *name, void**func); int API dw_module_close(HMOD handle); -int API dw_timer_connect(HWND window, int interval, void *sigfunc, void *data); +int API dw_timer_connect(int interval, void *sigfunc, void *data); void API dw_timer_disconnect(int id); void API dw_signal_connect(HWND window, char *signame, void *sigfunc, void *data); void API dw_signal_disconnect_by_window(HWND window); diff -r 11b5da6196c2 -r b955228477b3 dwtest.c --- a/dwtest.c Mon Jan 20 11:16:27 2003 +0000 +++ b/dwtest.c Mon Jan 20 20:21:06 2003 +0000 @@ -235,7 +235,7 @@ text_add(); dw_signal_connect(mainwindow, "delete_event", DW_SIGNAL_FUNC(exit_callback), (void *)mainwindow); - timerid = dw_timer_connect(mainwindow, 1000, DW_SIGNAL_FUNC(timer_callback), 0); + timerid = dw_timer_connect(1000, DW_SIGNAL_FUNC(timer_callback), 0); dw_window_set_usize(mainwindow, 640, 480); dw_window_show(mainwindow); diff -r 11b5da6196c2 -r b955228477b3 gtk/dw.c --- a/gtk/dw.c Mon Jan 20 11:16:27 2003 +0000 +++ b/gtk/dw.c Mon Jan 20 20:21:06 2003 +0000 @@ -7067,18 +7067,12 @@ * Returns: * Timer ID for use with dw_timer_disconnect(), 0 on error. */ -int API dw_timer_connect(HWND window, int interval, void *sigfunc, void *data) +int API dw_timer_connect(int interval, void *sigfunc, void *data) { int tag, _locked_by_me = FALSE; - char buf[100]; - - if(!window) - return 0; DW_MUTEX_LOCK; tag = gtk_timeout_add(interval, (GtkFunction)sigfunc, data); - sprintf(buf, "_dw_timer%d", tag); - gtk_object_set_data(GTK_OBJECT(window), buf, (gpointer)tag); DW_MUTEX_UNLOCK; return tag; } diff -r 11b5da6196c2 -r b955228477b3 os2/dw.c --- a/os2/dw.c Mon Jan 20 11:16:27 2003 +0000 +++ b/os2/dw.c Mon Jan 20 20:21:06 2003 +0000 @@ -3037,8 +3037,12 @@ _dwtid = dw_thread_id(); - while (WinGetMsg(dwhab, &qmsg, 0, 0, 0)) + while(WinGetMsg(dwhab, &qmsg, 0, 0, 0)) + { + if(qmsg.msg == WM_TIMER && qmsg.hwnd == NULLHANDLE) + _run_event(qmsg.hwnd, qmsg.msg, qmsg.mp1, qmsg.mp2); WinDispatchMsg(dwhab, &qmsg); + } WinDestroyMsgQueue(dwhmq); WinTerminate(dwhab); @@ -3059,6 +3063,8 @@ if(WinPeekMsg(dwhab, &qmsg, 0, 0, 0, PM_NOREMOVE)) { WinGetMsg(dwhab, &qmsg, 0, 0, 0); + if(qmsg.msg == WM_TIMER && qmsg.hwnd == NULLHANDLE) + _run_event(qmsg.hwnd, qmsg.msg, qmsg.mp1, qmsg.mp2); WinDispatchMsg(dwhab, &qmsg); } else @@ -3123,6 +3129,8 @@ while (WinGetMsg(dwhab, &qmsg, 0, 0, 0)) { + if(qmsg.msg == WM_TIMER && qmsg.hwnd == NULLHANDLE) + _run_event(qmsg.hwnd, qmsg.msg, qmsg.mp1, qmsg.mp2); WinDispatchMsg(dwhab, &qmsg); if(dialog->done) break; @@ -7638,26 +7646,23 @@ /* * Add a callback to a timer event. * Parameters: - * window: Window handle which owns this timer. * interval: Milliseconds to delay between calls. * sigfunc: The pointer to the function to be used as the callback. * data: User data to be passed to the handler function. * Returns: * Timer ID for use with dw_timer_disconnect(), 0 on error. */ -int API dw_timer_connect(HWND window, int interval, void *sigfunc, void *data) -{ - static int timerid = 0; - - if(window && sigfunc) - { - timerid++; - - if(timerid >= TID_USERMAX) - timerid = 1; - - _new_signal(WM_TIMER, window, timerid, sigfunc, data); - return WinStartTimer(dwhab, window, timerid, interval); +int API dw_timer_connect(int interval, void *sigfunc, void *data) +{ + if(sigfunc) + { + int timerid = WinStartTimer(dwhab, NULLHANDLE, timerid, interval); + + if(timerid) + { + _new_signal(WM_TIMER, NULLHANDLE, timerid, sigfunc, data); + return timerid; + } } return 0; } @@ -7675,11 +7680,12 @@ if(!id) return; + WinStopTimer(dwhab, NULLHANDLE, id); + while(tmp) { if(tmp->id == id) { - WinStopTimer(dwhab, tmp->window, id); if(prev) { prev->next = tmp->next;