@@ -457,12 +457,19 @@ def handle_yview(self, event, *args):
457457 return 'break'
458458
459459 def mousescroll (self , event ):
460- "Handle scroll wheel."
461- up = {EventType .MouseWheel : event .delta >= 0 == darwin ,
460+ """Handle scrollwheel event.
461+
462+ For wheel up, event.delta = 120*n on Windows, -1*n on darwin,
463+ where n can be > 1 if one scrolls fast. Flicking the wheel
464+ generates up to maybe 20 events with n up to 10 or more 1.
465+ Macs use wheel down (delta = 1*n) to scroll up, so positive
466+ delta means to scroll up on both systems.
467+
468+ X-11 sends Control-Button-4 event instead.
469+ """
470+ up = {EventType .MouseWheel : event .delta > 0 ,
462471 EventType .Button : event .num == 4 }
463- lines = 5
464- if up [event .type ]:
465- lines = - lines
472+ lines = - 5 if up [event .type ] else 5
466473 self .text .yview_scroll (lines , 'units' )
467474 return 'break'
468475
@@ -1701,7 +1708,11 @@ def _editor_window(parent): # htest #
17011708 filename = None
17021709 macosx .setupApp (root , None )
17031710 edit = EditorWindow (root = root , filename = filename )
1704- edit .text .bind ("<<close-all-windows>>" , edit .close_event )
1711+ text = edit .text
1712+ text ['height' ] = 10
1713+ for i in range (20 ):
1714+ text .insert ('insert' , ' ' * i + str (i ) + '\n ' )
1715+ # text.bind("<<close-all-windows>>", edit.close_event)
17051716 # Does not stop error, neither does following
17061717 # edit.text.bind("<<close-window>>", edit.close_event)
17071718
0 commit comments