diff --git a/ui/gesture/gestures.go b/ui/gesture/gestures.go index 0b91f407..dfbf868d 100644 --- a/ui/gesture/gestures.go +++ b/ui/gesture/gestures.go @@ -16,6 +16,7 @@ import ( type ClickEvent struct { Type ClickType Position f32.Point + Source pointer.Source } type ClickState uint8 @@ -94,7 +95,7 @@ func (c *Click) Update(q pointer.Events) []ClickEvent { switch e.Type { case pointer.Release: if c.State == StatePressed { - events = append(events, ClickEvent{Type: TypeClick, Position: e.Position}) + events = append(events, ClickEvent{Type: TypeClick, Position: e.Position, Source: e.Source}) } c.State = StateNormal case pointer.Cancel: @@ -104,7 +105,7 @@ func (c *Click) Update(q pointer.Events) []ClickEvent { break } c.State = StatePressed - events = append(events, ClickEvent{Type: TypePress, Position: e.Position}) + events = append(events, ClickEvent{Type: TypePress, Position: e.Position, Source: e.Source}) case pointer.Move: if c.State == StatePressed && !e.Hit { c.State = StateNormal diff --git a/ui/text/editor.go b/ui/text/editor.go index 414e5e7b..7655720c 100644 --- a/ui/text/editor.go +++ b/ui/text/editor.go @@ -86,8 +86,9 @@ func (e *Editor) Update(c *ui.Config, pq pointer.Events, kq key.Events) { } scrollTo := false for _, evt := range e.clicker.Update(pq) { - switch evt.Type { - case gesture.TypePress: + switch { + case evt.Type == gesture.TypePress && evt.Source == pointer.Mouse, + evt.Type == gesture.TypeClick && evt.Source == pointer.Touch: scrollTo = true e.blinkStart = c.Now e.moveCoord(image.Point{