From bacdd81f60ff0a40137504d93d1c4cdf1e9b3e73 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Sat, 27 Jul 2024 15:13:49 -0400 Subject: [PATCH] Propagate mouse motion events to boxes --- internal/system/event.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/system/event.go b/internal/system/event.go index cda1bac..6a082d0 100644 --- a/internal/system/event.go +++ b/internal/system/event.go @@ -115,17 +115,18 @@ func (this *Hierarchy) HandleMouseMove (position image.Point) { for _, dragSet := range this.drags { for _, box := range dragSet { if box.handleMouseMove() { break } + dragged = true } - dragged = true } if dragged { return } // TODO we can hover over multiple boxes at once. however, any way of // detecting this involves several slice allocations every time we // process a MouseMove event. perhaps we just ought to suck it up and do - // it. + // it. or perhaps doing *this* is the better way? we may never know. box := this.boxUnder(position) if box != nil { + box := this.considerMaskingParents(box) this.hover(box) box.handleMouseMove() }