mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
gesture,widget: drop press markers on gesture cancel
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -96,6 +96,9 @@ const (
|
||||
// TypeClick is reported when a click action
|
||||
// is complete.
|
||||
TypeClick
|
||||
// TypeCancel is reported when the gesture is
|
||||
// cancelled.
|
||||
TypeCancel
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -146,7 +149,11 @@ func (c *Click) Events(q event.Queue) []ClickEvent {
|
||||
events = append(events, ClickEvent{Type: TypeClick, Position: e.Position, Source: e.Source, Modifiers: e.Modifiers, NumClicks: c.clicks})
|
||||
}
|
||||
case pointer.Cancel:
|
||||
wasPressed := c.state == StatePressed
|
||||
c.state = StateNormal
|
||||
if wasPressed {
|
||||
events = append(events, ClickEvent{Type: TypeCancel})
|
||||
}
|
||||
case pointer.Press:
|
||||
if c.state == StatePressed {
|
||||
break
|
||||
|
||||
@@ -91,6 +91,8 @@ func (b *Clickable) update(gtx layout.Context) {
|
||||
|
||||
for _, e := range b.click.Events(gtx) {
|
||||
switch e.Type {
|
||||
case gesture.TypeCancel:
|
||||
b.history = nil
|
||||
case gesture.TypeClick:
|
||||
b.clicks = append(b.clicks, Click{
|
||||
Modifiers: e.Modifiers,
|
||||
|
||||
Reference in New Issue
Block a user