gesture,widget: detect multi-click on pointer.Press

References: https://todo.sr.ht/~eliasnaur/gio/455
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2022-11-07 07:23:50 -06:00
parent 9f62230c38
commit 5c896eabbb
3 changed files with 14 additions and 8 deletions
+5
View File
@@ -12,6 +12,7 @@ import (
"strings"
"testing"
"testing/quick"
"time"
"unicode"
"unicode/utf8"
@@ -846,6 +847,7 @@ g 2 4 6 8 g
font := text.Font{}
fontSize := unit.Sp(10)
var tim time.Duration
selected := func(start, end int) string {
// Layout once with no events; populate e.lines.
gtx.Queue = nil
@@ -861,15 +863,18 @@ g 2 4 6 8 g
Buttons: pointer.ButtonPrimary,
Type: pointer.Press,
Source: pointer.Mouse,
Time: tim,
Position: f32.Pt(textWidth(e, startPos.lineCol.Y, 0, startPos.lineCol.X), textHeight(e, startPos.lineCol.Y)),
},
pointer.Event{
Type: pointer.Release,
Source: pointer.Mouse,
Time: tim,
Position: f32.Pt(textWidth(e, endPos.lineCol.Y, 0, endPos.lineCol.X), textHeight(e, endPos.lineCol.Y)),
},
},
}
tim += time.Second // Avoid multi-clicks.
gtx.Queue = tq
e.Layout(gtx, cache, font, fontSize, nil)