summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/idle_test
diff options
context:
space:
mode:
authorChristopher Chavez <chrischavez@gmx.us>2024-02-02 10:38:43 (GMT)
committerGitHub <noreply@github.com>2024-02-02 10:38:43 (GMT)
commitd25d4ee60cc789a8b9c222859bb720ade1ab2e30 (patch)
tree177adef01e1bb60ff9955802fc67ee08b642c9ac /Lib/idlelib/idle_test
parent53339a0ef72fcfc15221792b117c4670b07a0b20 (diff)
downloadcpython-d25d4ee60cc789a8b9c222859bb720ade1ab2e30.zip
cpython-d25d4ee60cc789a8b9c222859bb720ade1ab2e30.tar.gz
cpython-d25d4ee60cc789a8b9c222859bb720ade1ab2e30.tar.bz2
gh-103820: IDLE: Do not interpret buttons 4/5 as scrolling on non-X11 (GH-103821)
Also fix test_mousewheel: do not skip a check which was broken due to incorrect delta on Aqua and XQuartz, and probably not because of `.update_idletasks()`.
Diffstat (limited to 'Lib/idlelib/idle_test')
-rw-r--r--Lib/idlelib/idle_test/test_sidebar.py22
1 files changed, 14 insertions, 8 deletions
diff --git a/Lib/idlelib/idle_test/test_sidebar.py b/Lib/idlelib/idle_test/test_sidebar.py
index fb52b3a..605e7a8 100644
--- a/Lib/idlelib/idle_test/test_sidebar.py
+++ b/Lib/idlelib/idle_test/test_sidebar.py
@@ -690,16 +690,22 @@ class ShellSidebarTest(unittest.TestCase):
last_lineno = get_end_linenumber(text)
self.assertIsNotNone(text.dlineinfo(text.index(f'{last_lineno}.0')))
- # Scroll up using the <MouseWheel> event.
- # The meaning of delta is platform-dependent.
- delta = -1 if sys.platform == 'darwin' else 120
- sidebar.canvas.event_generate('<MouseWheel>', x=0, y=0, delta=delta)
+ # Delta for <MouseWheel>, whose meaning is platform-dependent.
+ delta = 1 if sidebar.canvas._windowingsystem == 'aqua' else 120
+
+ # Scroll up.
+ if sidebar.canvas._windowingsystem == 'x11':
+ sidebar.canvas.event_generate('<Button-4>', x=0, y=0)
+ else:
+ sidebar.canvas.event_generate('<MouseWheel>', x=0, y=0, delta=delta)
yield
- if sys.platform != 'darwin': # .update_idletasks() does not work.
- self.assertIsNone(text.dlineinfo(text.index(f'{last_lineno}.0')))
+ self.assertIsNone(text.dlineinfo(text.index(f'{last_lineno}.0')))
- # Scroll back down using the <Button-5> event.
- sidebar.canvas.event_generate('<Button-5>', x=0, y=0)
+ # Scroll back down.
+ if sidebar.canvas._windowingsystem == 'x11':
+ sidebar.canvas.event_generate('<Button-5>', x=0, y=0)
+ else:
+ sidebar.canvas.event_generate('<MouseWheel>', x=0, y=0, delta=-delta)
yield
self.assertIsNotNone(text.dlineinfo(text.index(f'{last_lineno}.0')))