]> granicus.if.org Git - python/commitdiff
bpo-34047: IDLE: fix mousewheel scrolling direction on macOS (GH-8678)
authorTal Einat <taleinat+github@gmail.com>
Fri, 10 Aug 2018 06:02:08 +0000 (09:02 +0300)
committerGitHub <noreply@github.com>
Fri, 10 Aug 2018 06:02:08 +0000 (09:02 +0300)
Lib/idlelib/editor.py
Misc/NEWS.d/next/IDLE/2018-08-05-15-49-55.bpo-34047.LGKsIm.rst [new file with mode: 0644]

index 1a163891c27d457d00444ef12ce024665dbf5e6b..227a74deb82d3f1e44f36c10f3128d9435767002 100644 (file)
@@ -457,12 +457,19 @@ class EditorWindow(object):
         return 'break'
 
     def mousescroll(self, event):
-        "Handle scroll wheel."
-        up = {EventType.MouseWheel: event.delta >= 0 == darwin,
+        """Handle scrollwheel event.
+
+        For wheel up, event.delta = 120*n on Windows, -1*n on darwin,
+        where n can be > 1 if one scrolls fast.  Flicking the wheel
+        generates up to maybe 20 events with n up to 10 or more 1.
+        Macs use wheel down (delta = 1*n) to scroll up, so positive
+        delta means to scroll up on both systems.
+
+        X-11 sends Control-Button-4 event instead.
+        """
+        up = {EventType.MouseWheel: event.delta > 0,
               EventType.Button: event.num == 4}
-        lines = 5
-        if up[event.type]:
-            lines = -lines
+        lines = -5 if up[event.type] else 5
         self.text.yview_scroll(lines, 'units')
         return 'break'
 
@@ -1701,7 +1708,11 @@ def _editor_window(parent):  # htest #
         filename = None
     macosx.setupApp(root, None)
     edit = EditorWindow(root=root, filename=filename)
-    edit.text.bind("<<close-all-windows>>", edit.close_event)
+    text = edit.text
+    text['height'] = 10
+    for i in range(20):
+        text.insert('insert', '  '*i + str(i) + '\n')
+    # text.bind("<<close-all-windows>>", edit.close_event)
     # Does not stop error, neither does following
     # edit.text.bind("<<close-window>>", edit.close_event)
 
diff --git a/Misc/NEWS.d/next/IDLE/2018-08-05-15-49-55.bpo-34047.LGKsIm.rst b/Misc/NEWS.d/next/IDLE/2018-08-05-15-49-55.bpo-34047.LGKsIm.rst
new file mode 100644 (file)
index 0000000..a247908
--- /dev/null
@@ -0,0 +1 @@
+Fixed mousewheel scrolling direction on macOS.