--- a/ui/win32/window.c Thu Oct 09 18:24:09 2025 +0200 +++ b/ui/win32/window.c Thu Oct 09 18:49:19 2025 +0200 @@ -58,11 +58,18 @@ widget->wclass->eventproc(widget, hwnd, uMsg, wParam, lParam); } switch(uMsg) { - case WM_DESTROY: - PostQuitMessage(0); - break; - default: - return DefWindowProc(hwnd, uMsg, wParam, lParam); + case WM_DESTROY: { + PostQuitMessage(0); + break; + } + case WM_COMMAND: { + HWND hwndCtrl = (HWND)lParam; + W32Widget *cmdWidget = (W32Widget*)GetWindowLongPtr(hwndCtrl, GWLP_USERDATA); + if (cmdWidget && cmdWidget->wclass->eventproc) { + cmdWidget->wclass->eventproc(cmdWidget, hwnd, uMsg, wParam, lParam); + } + } + default: return DefWindowProc(hwnd, uMsg, wParam, lParam); } return 0; }