From f2679b202489afe5e155010f3e8c3a3f24cbf212 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Wed, 5 Jun 2019 10:51:45 +0200 Subject: [PATCH] ui/pointer: add Transparent to OpArea to allow events to pass through Signed-off-by: Elias Naur --- ui/pointer/pointer.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ui/pointer/pointer.go b/ui/pointer/pointer.go index 06adaba3..9d437fa9 100644 --- a/ui/pointer/pointer.go +++ b/ui/pointer/pointer.go @@ -24,6 +24,8 @@ type Event struct { } type OpArea struct { + Transparent bool + kind areaKind size image.Point } @@ -117,11 +119,15 @@ func (op *OpArea) decode(d []byte) { } func (op *OpArea) hit(pos f32.Point) HitResult { + res := HitOpaque + if op.Transparent { + res = HitTransparent + } switch op.kind { case areaRect: if 0 <= pos.X && pos.X < float32(op.size.X) && 0 <= pos.Y && pos.Y < float32(op.size.Y) { - return HitOpaque + return res } else { return HitNone } @@ -133,7 +139,7 @@ func (op *OpArea) hit(pos f32.Point) HitResult { xh := pos.X - rx yk := pos.Y - ry if xh*xh*ry2+yk*yk*rx2 <= rx2*ry2 { - return HitOpaque + return res } else { return HitNone }