summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--area_windows.go7
-rw-r--r--events_windows.go3
2 files changed, 10 insertions, 0 deletions
diff --git a/area_windows.go b/area_windows.go
index 4270046..943c5af 100644
--- a/area_windows.go
+++ b/area_windows.go
@@ -644,7 +644,14 @@ func areaWndProc(s *sysData) func(hwnd _HWND, uMsg uint32, wParam _WPARAM, lPara
return 0
}
return defwndproc()
+ case _WM_ACTIVATE:
+ // don't keep the double-click timer running if the user switched programs in between clicks
+ s.clickCounter.reset()
+ // MSDN says this message will be sent alongside WM_MOUSEACTIVATE, but we'll reset there too, just in case
+ return 0
case _WM_MOUSEACTIVATE:
+ // don't keep the double-click timer running if the user switched programs in between clicks
+ s.clickCounter.reset()
// transfer keyboard focus to our Area on an activating click
// (see http://www.catch22.net/tuts/custom-controls)
r1, _, err := _setFocus.Call(uintptr(s.hwnd))
diff --git a/events_windows.go b/events_windows.go
index de3664c..9f47b26 100644
--- a/events_windows.go
+++ b/events_windows.go
@@ -203,6 +203,9 @@ const (
// Window keyboard event messages and related constants.
const (
+ // filed under keyboard events by MSDN
+ _WM_ACTIVATE = 0x0006
+
// from winuser.h
_WM_KEYDOWN = 0x0100
_WM_KEYUP = 0x0101