add diagnostics to handleActionEvents for popup close-reopen debugging

This commit is contained in:
lkn 2026-06-07 16:31:24 +02:00
parent bbef21785b
commit 2a335646ea
1 changed files with 18 additions and 0 deletions

View File

@ -313,6 +313,8 @@ static void handleEvents(WMEvent * event, void *data)
switch (event->type) {
case WME_EXPOSE:
wwarning("popup: EXPOSE window=0x%lx highlightedItem=%d insideMenu=%d",
(unsigned long)event->window, bPtr->highlightedItem, bPtr->flags.insideMenu);
if (event->u.expose.count != 0)
break;
paintPopUpButton(bPtr);
@ -608,6 +610,8 @@ static void handleActionEvents(WMEvent * event, void *data)
switch (event->type) {
/* called for menuView */
case WME_EXPOSE:
wwarning("popup: EXPOSE window=0x%lx highlightedItem=%d insideMenu=%d",
(unsigned long)event->window, bPtr->highlightedItem, bPtr->flags.insideMenu);
{
/* Paint all items: highlighted one with white bg + text,
* the rest with grey bg. X11 used to rely on the X server
@ -622,6 +626,8 @@ static void handleActionEvents(WMEvent * event, void *data)
break;
case WME_LEAVE:
wwarning("popup: LEAVE window=0x%lx highlightedItem=%d insideMenu=%d",
(unsigned long)event->window, bPtr->highlightedItem, bPtr->flags.insideMenu);
/* Only clear menu state on leave from the menu view itself.
* Leave from the main button view is just the pointer moving
* to the popup — don't cancel the active drag-selection. */
@ -634,10 +640,15 @@ static void handleActionEvents(WMEvent * event, void *data)
break;
case WME_ENTER:
wwarning("popup: ENTER window=0x%lx insideMenu=%d",
(unsigned long)event->window, bPtr->flags.insideMenu);
bPtr->flags.insideMenu = 1;
break;
case WME_MOTION:
wwarning("popup: MOTION window=0x%lx y=%d highlightedItem prev=%d new=%d insideMenu=%d",
(unsigned long)event->window, event->u.motion.y, oldItem,
bPtr->highlightedItem, bPtr->flags.insideMenu);
if (bPtr->flags.insideMenu) {
oldItem = bPtr->highlightedItem;
bPtr->highlightedItem = event->u.motion.y / bPtr->view->size.height;
@ -668,6 +679,10 @@ static void handleActionEvents(WMEvent * event, void *data)
/* called for bPtr->view */
case WME_BUTTON_PRESS:
wwarning("popup: BUTTON_PRESS window=0x%lx button=%d x=%d y=%d insideMenu=%d highlightedItem=%d",
(unsigned long)event->window, event->u.button.button,
event->u.button.x, event->u.button.y,
bPtr->flags.insideMenu, bPtr->highlightedItem);
if (!bPtr->flags.enabled)
break;
@ -714,6 +729,9 @@ static void handleActionEvents(WMEvent * event, void *data)
break;
case WME_BUTTON_RELEASE:
wwarning("popup: BUTTON_RELEASE window=0x%lx button=%d insideMenu=%d highlightedItem=%d",
(unsigned long)event->window, event->u.button.button,
bPtr->flags.insideMenu, bPtr->highlightedItem);
if (event->u.button.button == WINGsConfiguration.mouseWheelUp ||
event->u.button.button == WINGsConfiguration.mouseWheelDown) {
break;