summaryrefslogtreecommitdiffstatshomepage
path: root/mouseevent.go
diff options
context:
space:
mode:
authorAlexander Neumann <an2048@googlemail.com>2012-02-24 10:31:17 +0100
committerAlexander Neumann <an2048@googlemail.com>2012-02-24 10:31:17 +0100
commit8cfac4e9697f74dcf093e090eb53d2e418eba9e2 (patch)
tree2702895e9a75e96b1e7e16051bbd2fb1c1654c3c /mouseevent.go
parentSome fixes for amd64 - WebView still buggy on amd64 (diff)
downloadwireguard-windows-8cfac4e9697f74dcf093e090eb53d2e418eba9e2.tar.xz
wireguard-windows-8cfac4e9697f74dcf093e090eb53d2e418eba9e2.zip
Fix recently introduced events bug
Diffstat (limited to 'mouseevent.go')
-rw-r--r--mouseevent.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/mouseevent.go b/mouseevent.go
index 1d484488..b187c4d7 100644
--- a/mouseevent.go
+++ b/mouseevent.go
@@ -19,12 +19,19 @@ type MouseEvent struct {
}
func (e *MouseEvent) Attach(handler MouseEventHandler) int {
+ for i, h := range e.handlers {
+ if h == nil {
+ e.handlers[i] = handler
+ return i
+ }
+ }
+
e.handlers = append(e.handlers, handler)
return len(e.handlers) - 1
}
func (e *MouseEvent) Detach(handle int) {
- e.handlers = append(e.handlers[:handle], e.handlers[handle+1:]...)
+ e.handlers[handle] = nil
}
type MouseEventPublisher struct {
@@ -37,6 +44,8 @@ func (p *MouseEventPublisher) Event() *MouseEvent {
func (p *MouseEventPublisher) Publish(x, y int, button MouseButton) {
for _, handler := range p.event.handlers {
- handler(x, y, button)
+ if handler != nil {
+ handler(x, y, button)
+ }
}
}