diff --git a/redo/tab_windows.go b/redo/tab_windows.go index 62da0b4..06f772b 100644 --- a/redo/tab_windows.go +++ b/redo/tab_windows.go @@ -23,6 +23,8 @@ type tab struct { func newTab() Tab { hwnd := C.newControl(C.xWC_TABCONTROL, C.TCS_TOOLTIPS | C.WS_TABSTOP, + // this is needed to have the tab contents be tab stop + // TODO this seems to override WS_TABSTOP C.WS_EX_CONTROLPARENT) t := &tab{ _hwnd: hwnd, diff --git a/redo/uitask_windows.c b/redo/uitask_windows.c index 479b48a..23aba52 100644 --- a/redo/uitask_windows.c +++ b/redo/uitask_windows.c @@ -7,6 +7,7 @@ void uimsgloop(void) { MSG msg; int res; + HWND active; for (;;) { SetLastError(0); @@ -15,7 +16,9 @@ void uimsgloop(void) xpanic("error calling GetMessage()", GetLastError()); if (res == 0) /* WM_QUIT */ break; - /* TODO IsDialogMessage() */ + active = GetActiveWindow(); + if (active != NULL && IsDialogMessageW(active, &msg) != 0) + continue; TranslateMessage(&msg); DispatchMessageW(&msg); }