Remove WMDeleteTimerWithClientData.
This function requires tracking an explict client data pointer, which it would be preferable not to have in the Rust rewrite. Removing this function entails tracking timer handlers explicitly, but this is not an undue burden.
This commit is contained in:
@@ -303,8 +303,6 @@ WMHandlerID WMAddTimerHandler(int milliseconds, WMCallback *callback,
|
||||
WMHandlerID WMAddPersistentTimerHandler(int milliseconds, WMCallback *callback,
|
||||
void *cdata);
|
||||
|
||||
void WMDeleteTimerWithClientData(void *cdata);
|
||||
|
||||
void WMDeleteTimerHandler(WMHandlerID handlerID);
|
||||
|
||||
WMHandlerID WMAddIdleHandler(WMCallback *callback, void *cdata);
|
||||
|
||||
@@ -151,36 +151,6 @@ WMHandlerID WMAddPersistentTimerHandler(int milliseconds, WMCallback * callback,
|
||||
return handler;
|
||||
}
|
||||
|
||||
void WMDeleteTimerWithClientData(void *cdata)
|
||||
{
|
||||
TimerHandler *handler, *tmp;
|
||||
|
||||
if (!cdata || !timerHandler)
|
||||
return;
|
||||
|
||||
tmp = timerHandler;
|
||||
if (tmp->clientData == cdata) {
|
||||
tmp->nextDelay = 0;
|
||||
if (!IS_ZERO(tmp->when)) {
|
||||
timerHandler = tmp->next;
|
||||
wfree(tmp);
|
||||
}
|
||||
} else {
|
||||
while (tmp->next) {
|
||||
if (tmp->next->clientData == cdata) {
|
||||
handler = tmp->next;
|
||||
handler->nextDelay = 0;
|
||||
if (IS_ZERO(handler->when))
|
||||
break;
|
||||
tmp->next = handler->next;
|
||||
wfree(handler);
|
||||
break;
|
||||
}
|
||||
tmp = tmp->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WMDeleteTimerHandler(WMHandlerID handlerID)
|
||||
{
|
||||
TimerHandler *tmp, *handler = (TimerHandler *) handlerID;
|
||||
|
||||
@@ -1608,7 +1608,7 @@ void wMenuScroll(WMenu *menu)
|
||||
XEvent ev;
|
||||
|
||||
if (omenu->jump_back)
|
||||
WMDeleteTimerWithClientData(omenu->jump_back);
|
||||
WMDeleteTimerHandler(omenu->jump_back_timer);
|
||||
|
||||
if (( /*omenu->flags.buttoned && */ !wPreferences.wrap_menus)
|
||||
|| omenu->flags.app_menu) {
|
||||
@@ -1709,7 +1709,7 @@ void wMenuScroll(WMenu *menu)
|
||||
scr->flags.jump_back_pending = 1;
|
||||
} else
|
||||
delayer = omenu->jump_back;
|
||||
WMAddTimerHandler(MENU_JUMP_BACK_DELAY, callback_leaving, delayer);
|
||||
omenu->jump_back_timer = WMAddTimerHandler(MENU_JUMP_BACK_DELAY, callback_leaving, delayer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ typedef struct WMenu {
|
||||
WMHandlerID timer; /* timer for the autoscroll */
|
||||
|
||||
void *jump_back; /* jump back data */
|
||||
WMHandlerID jump_back_timer; /* set when jump_back is being used */
|
||||
|
||||
/* to be called when some entry is edited */
|
||||
void (*on_edit)(struct WMenu *menu, struct WMenuEntry *entry);
|
||||
|
||||
@@ -1648,9 +1648,9 @@ void wUnmanageWindow(WWindow *wwin, Bool restore, Bool destroyed)
|
||||
wSelectWindow(wwin, False);
|
||||
|
||||
/* remove all pending events on window */
|
||||
/* I think this only matters for autoraise */
|
||||
/* I think this only matters for autoraise. see event.c:1197. */
|
||||
if (wPreferences.raise_delay)
|
||||
WMDeleteTimerWithClientData(wwin->frame->core);
|
||||
WMDeleteTimerHandler(wwin->frame->core->screen_ptr->autoRaiseTimer);
|
||||
|
||||
XFlush(dpy);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user