diff --git a/app/internal/window/os_android.go b/app/internal/window/os_android.go index 6fa166c1..549ece9e 100644 --- a/app/internal/window/os_android.go +++ b/app/internal/window/os_android.go @@ -523,13 +523,13 @@ func Java_org_gioui_GioView_onTouchEvent(env *C.JNIEnv, class C.jclass, handle C var src pointer.Source var btns pointer.Buttons if jbtns&C.AMOTION_EVENT_BUTTON_PRIMARY != 0 { - btns |= pointer.ButtonLeft + btns |= pointer.ButtonPrimary } if jbtns&C.AMOTION_EVENT_BUTTON_SECONDARY != 0 { - btns |= pointer.ButtonRight + btns |= pointer.ButtonSecondary } if jbtns&C.AMOTION_EVENT_BUTTON_TERTIARY != 0 { - btns |= pointer.ButtonMiddle + btns |= pointer.ButtonTertiary } switch tool { case C.AMOTION_EVENT_TOOL_TYPE_FINGER: diff --git a/app/internal/window/os_js.go b/app/internal/window/os_js.go index a0cd30c7..5189493b 100644 --- a/app/internal/window/os_js.go +++ b/app/internal/window/os_js.go @@ -382,13 +382,13 @@ func (w *window) pointerEvent(typ pointer.Type, dx, dy float32, e js.Value) { jbtns := e.Get("buttons").Int() var btns pointer.Buttons if jbtns&1 != 0 { - btns |= pointer.ButtonLeft + btns |= pointer.ButtonPrimary } if jbtns&2 != 0 { - btns |= pointer.ButtonRight + btns |= pointer.ButtonSecondary } if jbtns&4 != 0 { - btns |= pointer.ButtonMiddle + btns |= pointer.ButtonTertiary } w.w.Event(pointer.Event{ Type: typ, diff --git a/app/internal/window/os_macos.go b/app/internal/window/os_macos.go index 8dd40aa8..de15d710 100644 --- a/app/internal/window/os_macos.go +++ b/app/internal/window/os_macos.go @@ -200,13 +200,13 @@ func gio_onMouse(view C.CFTypeRef, cdir C.int, cbtns C.NSUInteger, x, y, dx, dy } var btns pointer.Buttons if cbtns&(1<<0) != 0 { - btns |= pointer.ButtonLeft + btns |= pointer.ButtonPrimary } if cbtns&(1<<1) != 0 { - btns |= pointer.ButtonRight + btns |= pointer.ButtonSecondary } if cbtns&(1<<2) != 0 { - btns |= pointer.ButtonMiddle + btns |= pointer.ButtonTertiary } t := time.Duration(float64(ti)*float64(time.Second) + .5) w := mustView(view) diff --git a/app/internal/window/os_wayland.go b/app/internal/window/os_wayland.go index 0bc37c23..f5eaa17d 100644 --- a/app/internal/window/os_wayland.go +++ b/app/internal/window/os_wayland.go @@ -801,11 +801,11 @@ func gio_onPointerButton(data unsafe.Pointer, p *C.struct_wl_pointer, serial, t, var btn pointer.Buttons switch wbtn { case BTN_LEFT: - btn = pointer.ButtonLeft + btn = pointer.ButtonPrimary case BTN_RIGHT: - btn = pointer.ButtonRight + btn = pointer.ButtonSecondary case BTN_MIDDLE: - btn = pointer.ButtonMiddle + btn = pointer.ButtonTertiary default: return } diff --git a/app/internal/window/os_windows.go b/app/internal/window/os_windows.go index 559134ad..f5c8a441 100644 --- a/app/internal/window/os_windows.go +++ b/app/internal/window/os_windows.go @@ -257,17 +257,17 @@ func windowProc(hwnd syscall.Handle, msg uint32, wParam, lParam uintptr) uintptr w.w.Event(e) } case windows.WM_LBUTTONDOWN: - w.pointerButton(pointer.ButtonLeft, true, lParam, getModifiers()) + w.pointerButton(pointer.ButtonPrimary, true, lParam, getModifiers()) case windows.WM_LBUTTONUP: - w.pointerButton(pointer.ButtonLeft, false, lParam, getModifiers()) + w.pointerButton(pointer.ButtonPrimary, false, lParam, getModifiers()) case windows.WM_RBUTTONDOWN: - w.pointerButton(pointer.ButtonRight, true, lParam, getModifiers()) + w.pointerButton(pointer.ButtonSecondary, true, lParam, getModifiers()) case windows.WM_RBUTTONUP: - w.pointerButton(pointer.ButtonRight, false, lParam, getModifiers()) + w.pointerButton(pointer.ButtonSecondary, false, lParam, getModifiers()) case windows.WM_MBUTTONDOWN: - w.pointerButton(pointer.ButtonMiddle, true, lParam, getModifiers()) + w.pointerButton(pointer.ButtonTertiary, true, lParam, getModifiers()) case windows.WM_MBUTTONUP: - w.pointerButton(pointer.ButtonMiddle, false, lParam, getModifiers()) + w.pointerButton(pointer.ButtonTertiary, false, lParam, getModifiers()) case windows.WM_CANCELMODE: w.w.Event(pointer.Event{ Type: pointer.Cancel, diff --git a/app/internal/window/os_x11.go b/app/internal/window/os_x11.go index 367edd96..5e5aec39 100644 --- a/app/internal/window/os_x11.go +++ b/app/internal/window/os_x11.go @@ -362,11 +362,11 @@ func (h *x11EventHandler) handleEvents() bool { const scrollScale = 10 switch bevt.button { case C.Button1: - btn = pointer.ButtonLeft + btn = pointer.ButtonPrimary case C.Button2: - btn = pointer.ButtonMiddle + btn = pointer.ButtonTertiary case C.Button3: - btn = pointer.ButtonRight + btn = pointer.ButtonSecondary case C.Button4: // scroll up ev.Type = pointer.Scroll diff --git a/gesture/gesture.go b/gesture/gesture.go index 763183c2..c43b3210 100644 --- a/gesture/gesture.go +++ b/gesture/gesture.go @@ -172,7 +172,7 @@ func (c *Click) Events(q event.Queue) []ClickEvent { if c.pressed { break } - if e.Source == pointer.Mouse && e.Buttons != pointer.ButtonLeft { + if e.Source == pointer.Mouse && e.Buttons != pointer.ButtonPrimary { break } if !c.entered { @@ -341,7 +341,7 @@ func (d *Drag) Events(cfg unit.Metric, q event.Queue, axis Axis) []pointer.Event switch e.Type { case pointer.Press: - if !(e.Buttons == pointer.ButtonLeft || e.Source == pointer.Touch) { + if !(e.Buttons == pointer.ButtonPrimary || e.Source == pointer.Touch) { continue } if d.dragging { diff --git a/gesture/gesture_test.go b/gesture/gesture_test.go index a3491e15..3c9f0383 100644 --- a/gesture/gesture_test.go +++ b/gesture/gesture_test.go @@ -64,7 +64,7 @@ func mouseClickEvents(times ...time.Duration) []event.Event { press := pointer.Event{ Type: pointer.Press, Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, } events := make([]event.Event, 0, 2*len(times)) for _, t := range times { diff --git a/io/pointer/pointer.go b/io/pointer/pointer.go index 3b4326f6..bc363873 100644 --- a/io/pointer/pointer.go +++ b/io/pointer/pointer.go @@ -148,9 +148,14 @@ const ( ) const ( - ButtonLeft Buttons = 1 << iota - ButtonRight - ButtonMiddle + // ButtonPrimary is the primary button, usually the left button for a + // right-handed user. + ButtonPrimary Buttons = 1 << iota + // ButtonSecondary is the secondary button, usually the right button for a + // right-handed user. + ButtonSecondary + // ButtonTertiary is the tertiary button, usually the middle button. + ButtonTertiary ) const ( @@ -265,14 +270,14 @@ func (b Buttons) Contain(buttons Buttons) bool { func (b Buttons) String() string { var strs []string - if b.Contain(ButtonLeft) { - strs = append(strs, "ButtonLeft") + if b.Contain(ButtonPrimary) { + strs = append(strs, "ButtonPrimary") } - if b.Contain(ButtonRight) { - strs = append(strs, "ButtonRight") + if b.Contain(ButtonSecondary) { + strs = append(strs, "ButtonSecondary") } - if b.Contain(ButtonMiddle) { - strs = append(strs, "ButtonMiddle") + if b.Contain(ButtonTertiary) { + strs = append(strs, "ButtonTertiary") } return strings.Join(strs, "|") } diff --git a/io/router/pointer_test.go b/io/router/pointer_test.go index 82c79642..c0738b4a 100644 --- a/io/router/pointer_test.go +++ b/io/router/pointer_test.go @@ -488,7 +488,7 @@ func TestCursorNameOp(t *testing.T) { return pointer.Event{ Type: pointer.Move, Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Position: f32.Pt(x, y), } } diff --git a/layout/list_test.go b/layout/list_test.go index e0400a12..f9d0a0a7 100644 --- a/layout/list_test.go +++ b/layout/list_test.go @@ -43,7 +43,7 @@ func TestListPosition(t *testing.T) { scroll: _s( pointer.Event{ Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Type: pointer.Press, Position: f32.Pt(0, 0), }, @@ -54,7 +54,7 @@ func TestListPosition(t *testing.T) { }, pointer.Event{ Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Type: pointer.Release, Position: f32.Pt(5, 0), }, @@ -63,7 +63,7 @@ func TestListPosition(t *testing.T) { scroll: _s( pointer.Event{ Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Type: pointer.Press, Position: f32.Pt(0, 0), }, @@ -74,7 +74,7 @@ func TestListPosition(t *testing.T) { }, pointer.Event{ Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Type: pointer.Release, Position: f32.Pt(5, 0), }, @@ -83,7 +83,7 @@ func TestListPosition(t *testing.T) { scroll: _s( pointer.Event{ Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Type: pointer.Press, Position: f32.Pt(0, 0), }, @@ -94,7 +94,7 @@ func TestListPosition(t *testing.T) { }, pointer.Event{ Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Type: pointer.Release, Position: f32.Pt(15, 0), }, diff --git a/widget/editor_test.go b/widget/editor_test.go index 0f34371e..2babdbf6 100644 --- a/widget/editor_test.go +++ b/widget/editor_test.go @@ -373,7 +373,7 @@ g123456789g tq := &testQueue{ events: []event.Event{ pointer.Event{ - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Type: pointer.Press, Source: pointer.Mouse, Position: f32.Pt(textWidth(e, startPos.lineCol.Y, 0, startPos.lineCol.X), textHeight(e, startPos.lineCol.Y)), diff --git a/widget/example_test.go b/widget/example_test.go index e937c7f5..185643b1 100644 --- a/widget/example_test.go +++ b/widget/example_test.go @@ -44,13 +44,13 @@ func ExampleClickable_passthrough() { r.Queue( pointer.Event{ Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Type: pointer.Press, Position: f32.Pt(50, 50), }, pointer.Event{ Source: pointer.Mouse, - Buttons: pointer.ButtonLeft, + Buttons: pointer.ButtonPrimary, Type: pointer.Release, Position: f32.Pt(50, 50), },