summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-08-12 17:18:45 -0400
committerPietro Gagliardi <[email protected]>2014-08-12 17:18:45 -0400
commit5523cdb22a6aad761ed4386ecd60143a553a4f02 (patch)
treec71fff105ca086b793568141ab0102ab409b8b02
parent2146ac2af3209f70df8c73e16d82bf866ea19c0b (diff)
Implemented tab stopping.
-rw-r--r--redo/tab_windows.go2
-rw-r--r--redo/uitask_windows.c5
2 files changed, 6 insertions, 1 deletions
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);
}