diff options
author | Alexander Neumann <an2048@googlemail.com> | 2012-02-24 10:31:17 +0100 |
---|---|---|
committer | Alexander Neumann <an2048@googlemail.com> | 2012-02-24 10:31:17 +0100 |
commit | 8cfac4e9697f74dcf093e090eb53d2e418eba9e2 (patch) | |
tree | 2702895e9a75e96b1e7e16051bbd2fb1c1654c3c /mouseevent.go | |
parent | Some fixes for amd64 - WebView still buggy on amd64 (diff) | |
download | wireguard-windows-8cfac4e9697f74dcf093e090eb53d2e418eba9e2.tar.xz wireguard-windows-8cfac4e9697f74dcf093e090eb53d2e418eba9e2.zip |
Fix recently introduced events bug
Diffstat (limited to 'mouseevent.go')
-rw-r--r-- | mouseevent.go | 13 |
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) + } } } |