mirror of
https://github.com/gryf/wmaker.git
synced 2026-01-29 11:35:47 +01:00
*** empty log message ***
This commit is contained in:
@@ -38,7 +38,7 @@ typedef struct TimerHandler {
|
|||||||
struct timeval when; /* when to call the callback */
|
struct timeval when; /* when to call the callback */
|
||||||
void *clientData;
|
void *clientData;
|
||||||
struct TimerHandler *next;
|
struct TimerHandler *next;
|
||||||
Bool permanent;
|
int nextDelay; /* 0 if it's one-shot */
|
||||||
} TimerHandler;
|
} TimerHandler;
|
||||||
|
|
||||||
|
|
||||||
@@ -174,7 +174,7 @@ WMAddTimerHandler(int milliseconds, WMCallback *callback, void *cdata)
|
|||||||
addmillisecs(&handler->when, milliseconds);
|
addmillisecs(&handler->when, milliseconds);
|
||||||
handler->callback = callback;
|
handler->callback = callback;
|
||||||
handler->clientData = cdata;
|
handler->clientData = cdata;
|
||||||
handler->permanent = False;
|
handler->nextDelay = 0;
|
||||||
|
|
||||||
enqueueTimerHandler(handler);
|
enqueueTimerHandler(handler);
|
||||||
|
|
||||||
@@ -188,7 +188,7 @@ WMAddEternalTimerHandler(int milliseconds, WMCallback *callback, void *cdata)
|
|||||||
TimerHandler *handler = WMAddTimerHandler(milliseconds, callback, cdata);
|
TimerHandler *handler = WMAddTimerHandler(milliseconds, callback, cdata);
|
||||||
|
|
||||||
if (handler != NULL)
|
if (handler != NULL)
|
||||||
handler->permanent = True;
|
handler->nextDelay = milliseconds;
|
||||||
|
|
||||||
return handler;
|
return handler;
|
||||||
}
|
}
|
||||||
@@ -205,7 +205,7 @@ WMDeleteTimerWithClientData(void *cdata)
|
|||||||
|
|
||||||
tmp = timerHandler;
|
tmp = timerHandler;
|
||||||
if (tmp->clientData==cdata) {
|
if (tmp->clientData==cdata) {
|
||||||
tmp->permanent = False;
|
tmp->nextDelay = 0;
|
||||||
if (!IS_ZERO(tmp->when)) {
|
if (!IS_ZERO(tmp->when)) {
|
||||||
timerHandler = tmp->next;
|
timerHandler = tmp->next;
|
||||||
wfree(tmp);
|
wfree(tmp);
|
||||||
@@ -214,7 +214,7 @@ WMDeleteTimerWithClientData(void *cdata)
|
|||||||
while (tmp->next) {
|
while (tmp->next) {
|
||||||
if (tmp->next->clientData==cdata) {
|
if (tmp->next->clientData==cdata) {
|
||||||
handler = tmp->next;
|
handler = tmp->next;
|
||||||
handler->permanent = False;
|
handler->nextDelay = 0;
|
||||||
if (IS_ZERO(handler->when))
|
if (IS_ZERO(handler->when))
|
||||||
break;
|
break;
|
||||||
tmp->next = handler->next;
|
tmp->next = handler->next;
|
||||||
@@ -238,7 +238,7 @@ WMDeleteTimerHandler(WMHandlerID handlerID)
|
|||||||
|
|
||||||
tmp = timerHandler;
|
tmp = timerHandler;
|
||||||
|
|
||||||
handler->permanent = False;
|
handler->nextDelay = 0;
|
||||||
|
|
||||||
if (IS_ZERO(handler->when))
|
if (IS_ZERO(handler->when))
|
||||||
return;
|
return;
|
||||||
@@ -400,9 +400,9 @@ checkTimerHandlers()
|
|||||||
handler = timerHandler;
|
handler = timerHandler;
|
||||||
timerHandler = timerHandler->next;
|
timerHandler = timerHandler->next;
|
||||||
|
|
||||||
if (handler->permanent) {
|
if (handler->nextDelay > 0) {
|
||||||
rightNow(&handler->when);
|
rightNow(&handler->when);
|
||||||
addmillisecs(&handler->when, milliseconds);
|
addmillisecs(&handler->when, handler->nextDelay);
|
||||||
enqueueTimerHandler(handler);
|
enqueueTimerHandler(handler);
|
||||||
} else {
|
} else {
|
||||||
wfree(handler);
|
wfree(handler);
|
||||||
|
|||||||
Reference in New Issue
Block a user