From a6483a421ff651b1362cfa53d6300ac01a316a4c Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Thu, 22 Aug 2019 17:16:06 +0200 Subject: [PATCH] ui/gesture: replace Click.Events with Click.Next Everything else was converted to use the Next style event API, but Click was forgotten. Signed-off-by: Elias Naur --- ui/gesture/gesture.go | 11 +++++------ ui/text/editor.go | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/ui/gesture/gesture.go b/ui/gesture/gesture.go index da120550..c118aaaa 100644 --- a/ui/gesture/gesture.go +++ b/ui/gesture/gesture.go @@ -124,9 +124,8 @@ func (c *Click) State() ClickState { return c.state } -// Events reports all click events for the available events. -func (c *Click) Events(q input.Queue) []ClickEvent { - var events []ClickEvent +// Next returns the next click event, if any. +func (c *Click) Next(q input.Queue) (ClickEvent, bool) { for evt, ok := q.Next(c); ok; evt, ok = q.Next(c) { e, ok := evt.(pointer.Event) if !ok { @@ -137,7 +136,7 @@ func (c *Click) Events(q input.Queue) []ClickEvent { wasPressed := c.state == StatePressed c.state = StateNormal if wasPressed { - events = append(events, ClickEvent{Type: TypeClick, Position: e.Position, Source: e.Source}) + return ClickEvent{Type: TypeClick, Position: e.Position, Source: e.Source}, true } case pointer.Cancel: c.state = StateNormal @@ -146,7 +145,7 @@ func (c *Click) Events(q input.Queue) []ClickEvent { break } c.state = StatePressed - events = append(events, ClickEvent{Type: TypePress, Position: e.Position, Source: e.Source}) + return ClickEvent{Type: TypePress, Position: e.Position, Source: e.Source}, true case pointer.Move: if c.state == StatePressed && !e.Hit { c.state = StateNormal @@ -155,7 +154,7 @@ func (c *Click) Events(q input.Queue) []ClickEvent { } } } - return events + return ClickEvent{}, false } // Add the handler to the operation list to receive scroll events. diff --git a/ui/text/editor.go b/ui/text/editor.go index 295184a0..16d993fd 100644 --- a/ui/text/editor.go +++ b/ui/text/editor.go @@ -107,7 +107,7 @@ func (e *Editor) Next(cfg ui.Config, queue input.Queue) (EditorEvent, bool) { e.scrollOff.Y += sdist soff = e.scrollOff.Y } - for _, evt := range e.clicker.Events(queue) { + for evt, ok := e.clicker.Next(queue); ok; evt, ok = e.clicker.Next(queue) { switch { case evt.Type == gesture.TypePress && evt.Source == pointer.Mouse, evt.Type == gesture.TypeClick && evt.Source == pointer.Touch: