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:
2025-12-15 13:52:37 -05:00
parent fa67563c2b
commit 5075c877fa
5 changed files with 5 additions and 36 deletions

View File

@@ -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);

View File

@@ -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;

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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);