mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 09:55:40 +00:00
app,io/router: map Androids' DPAD_CENTER to a click
Mapping it to key.NameReturn confuses widgets such as Editor that treats clicks separate from return key presses. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -253,6 +253,11 @@ func (q *keyQueue) Push(e event.Event, events *handlerEvents) {
|
||||
}
|
||||
}
|
||||
|
||||
func (q *keyQueue) BoundsFor(t event.Tag) f32.Rectangle {
|
||||
order := q.handlers[t].dirOrder
|
||||
return q.dirOrder[order].bounds
|
||||
}
|
||||
|
||||
func (q *keyQueue) setFocus(focus event.Tag, events *handlerEvents) {
|
||||
if focus != nil {
|
||||
if _, exists := q.handlers[focus]; !exists {
|
||||
|
||||
@@ -152,6 +152,23 @@ func (q *Router) MoveFocus(dir FocusDirection) {
|
||||
q.key.queue.MoveFocus(dir, &q.handlers)
|
||||
}
|
||||
|
||||
func (q *Router) ClickFocus() {
|
||||
focus := q.key.queue.focus
|
||||
if focus == nil {
|
||||
return
|
||||
}
|
||||
bounds := q.key.queue.BoundsFor(focus)
|
||||
center := bounds.Max.Add(bounds.Min).Mul(.5)
|
||||
e := pointer.Event{
|
||||
Position: center,
|
||||
Source: pointer.Touch,
|
||||
}
|
||||
e.Type = pointer.Press
|
||||
q.pointer.queue.Push(e, &q.handlers)
|
||||
e.Type = pointer.Release
|
||||
q.pointer.queue.Push(e, &q.handlers)
|
||||
}
|
||||
|
||||
// TextInputState returns the input state from the most recent
|
||||
// call to Frame.
|
||||
func (q *Router) TextInputState() TextInputState {
|
||||
|
||||
Reference in New Issue
Block a user