Skip to content

IDLE bindings for scrolling using buttons 4 and 5 should only apply to X11 #103820

Description

@chrstphrchvz

Bug report

On X11, vertical scrolling is conventionally done using events for mouse “buttons” 4 and 5. But on Win32 and Aqua, which have a dedicated event for scrolling (<MouseWheel> in Tk), buttons 4 and 5 correspond to additional hardware buttons present on some mice. Tk 8.6 and earlier do not abstract away these platform differences, so bindings in IDLE for scrolling should ignore buttons 4 and 5 on non-X11.

Accordingly, idlelib.idle_test.test_sidebar.ShellSidebarTest.test_mousewheel should be revised to check the windowing system, so that it correctly distinguishes between Aqua and XQuartz (which sys.platform == 'darwin' does not do), sends button 4/5 events on X11 only, and sends <MouseWheel> with the correct sign for delta on Aqua.

Tk 8.7 (TIP 474) will change mouse events to be consistent across windowing systems. This requires further revisions, but I imagine it is better to separately address issues for Tk ≤ 8.6 first.

Linked PRs

Activity

  1. terryjreedy commented on Apr 25, 2023

    @terryjreedy
    Member

    The topic-IDLE label makes sure I get notified.

  2. added a commit that references this issue on Feb 2, 2024
  3. added 2 commits that reference this issue on Feb 2, 2024
  4. added 2 commits that reference this issue on Feb 2, 2024
  5. serhiy-storchaka commented on Feb 2, 2024

    @serhiy-storchaka
    Member

    Thank you for your contribution @chrstphrchvz. For this issue and for others, whose turn has not yet come to me.

  6. added a commit that references this issue on Feb 11, 2024
  7. added a commit that references this issue on Feb 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic-IDLEtype-bugAn unexpected behavior, bug, or error

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions