mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 02:15:34 +00:00
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 <mail@eliasnaur.com>
This commit is contained in:
@@ -124,9 +124,8 @@ func (c *Click) State() ClickState {
|
|||||||
return c.state
|
return c.state
|
||||||
}
|
}
|
||||||
|
|
||||||
// Events reports all click events for the available events.
|
// Next returns the next click event, if any.
|
||||||
func (c *Click) Events(q input.Queue) []ClickEvent {
|
func (c *Click) Next(q input.Queue) (ClickEvent, bool) {
|
||||||
var events []ClickEvent
|
|
||||||
for evt, ok := q.Next(c); ok; evt, ok = q.Next(c) {
|
for evt, ok := q.Next(c); ok; evt, ok = q.Next(c) {
|
||||||
e, ok := evt.(pointer.Event)
|
e, ok := evt.(pointer.Event)
|
||||||
if !ok {
|
if !ok {
|
||||||
@@ -137,7 +136,7 @@ func (c *Click) Events(q input.Queue) []ClickEvent {
|
|||||||
wasPressed := c.state == StatePressed
|
wasPressed := c.state == StatePressed
|
||||||
c.state = StateNormal
|
c.state = StateNormal
|
||||||
if wasPressed {
|
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:
|
case pointer.Cancel:
|
||||||
c.state = StateNormal
|
c.state = StateNormal
|
||||||
@@ -146,7 +145,7 @@ func (c *Click) Events(q input.Queue) []ClickEvent {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
c.state = StatePressed
|
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:
|
case pointer.Move:
|
||||||
if c.state == StatePressed && !e.Hit {
|
if c.state == StatePressed && !e.Hit {
|
||||||
c.state = StateNormal
|
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.
|
// Add the handler to the operation list to receive scroll events.
|
||||||
|
|||||||
+1
-1
@@ -107,7 +107,7 @@ func (e *Editor) Next(cfg ui.Config, queue input.Queue) (EditorEvent, bool) {
|
|||||||
e.scrollOff.Y += sdist
|
e.scrollOff.Y += sdist
|
||||||
soff = e.scrollOff.Y
|
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 {
|
switch {
|
||||||
case evt.Type == gesture.TypePress && evt.Source == pointer.Mouse,
|
case evt.Type == gesture.TypePress && evt.Source == pointer.Mouse,
|
||||||
evt.Type == gesture.TypeClick && evt.Source == pointer.Touch:
|
evt.Type == gesture.TypeClick && evt.Source == pointer.Touch:
|
||||||
|
|||||||
Reference in New Issue
Block a user