<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Nice catch! Thanks!<div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class='history_container' type='cite' style='border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;'>
                        <p style='color: #AAAAAA; margin-top: 10px;'>Am 16.02.2022 15:44:42 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style='font-family:Arial,Helvetica,sans-serif'>Tony Garnock-Jones uploaded a new version of Morphic to project The Trunk:<br>http://source.squeak.org/trunk/Morphic-tonyg.1899.mcz<br><br>==================== Summary ====================<br><br>Name: Morphic-tonyg.1899<br>Author: tonyg<br>Time: 16 February 2022, 3:33:03.719368 pm<br>UUID: 0c424705-35f2-4062-a306-8bab3d613ee9<br>Ancestors: Morphic-mt.1898<br><br>Remove unwanted reimplementations of `handleMouseMove:` in PluggableListMorph and SimpleHierarchicalListMorph.<br><br>Looking at the available history, it seems that `handleMouseMove:` was copied-and-modified in these two classes from the main Morph implementation sometime before `handlesMouseMove:` was introduced to the image.<br><br>Compared to Morph's implementation, the list morphs both update some notion of a hover row, and then decide whether or not to proceed in a way that can be captured by a `handlesMouseMove:` implementation.<br><br>This change therefore changes the two classes' `handleMouseMove:` implementations to delegate back to Morph's implementation, after managing their hover row logic. It also moves the custom "should we proceed?" logic into `handlesMouseMove:` implementations.<br><br>=============== Diff against Morphic-mt.1898 ===============<br><br>Item was changed:<br>- SystemOrganization addCategory: #'Morphic-Balloon'!<br>- SystemOrganization addCategory: #'Morphic-Basic'!<br>  SystemOrganization addCategory: #'Morphic-Basic-NewCurve'!<br>+ SystemOrganization addCategory: #'Morphic-Pluggable Widgets'!<br>- SystemOrganization addCategory: #'Morphic-Borders'!<br>  SystemOrganization addCategory: #'Morphic-Collections-Arrayed'!<br>+ SystemOrganization addCategory: #'Morphic-Widgets'!<br>- SystemOrganization addCategory: #'Morphic-Demo'!<br>- SystemOrganization addCategory: #'Morphic-Events'!<br>  SystemOrganization addCategory: #'Morphic-Explorer'!<br>+ SystemOrganization addCategory: #'Morphic-Borders'!<br>- SystemOrganization addCategory: #'Morphic-Kernel'!<br>- SystemOrganization addCategory: #'Morphic-Layouts'!<br>- SystemOrganization addCategory: #'Morphic-Menus'!<br>  SystemOrganization addCategory: #'Morphic-Menus-DockingBar'!<br>+ SystemOrganization addCategory: #'Morphic-Menus'!<br>- SystemOrganization addCategory: #'Morphic-Pluggable Widgets'!<br>- SystemOrganization addCategory: #'Morphic-Sound-Synthesis'!<br>  SystemOrganization addCategory: #'Morphic-Support'!<br>- SystemOrganization addCategory: #'Morphic-Text Support'!<br>  SystemOrganization addCategory: #'Morphic-TrueType'!<br>+ SystemOrganization addCategory: #'Morphic-Basic'!<br>+ SystemOrganization addCategory: #'Morphic-Demo'!<br>- SystemOrganization addCategory: #'Morphic-Widgets'!<br>  SystemOrganization addCategory: #'Morphic-Windows'!<br>+ SystemOrganization addCategory: #'Morphic-Balloon'!<br>+ SystemOrganization addCategory: #'Morphic-Kernel'!<br>+ SystemOrganization addCategory: #'Morphic-Sound-Synthesis'!<br>  SystemOrganization addCategory: #'Morphic-Worlds'!<br>+ SystemOrganization addCategory: #'Morphic-Layouts'!<br>+ SystemOrganization addCategory: #'Morphic-Text Support'!<br>+ SystemOrganization addCategory: #'Morphic-Events'!<br><br>Item was changed:<br>  ----- Method: PluggableListMorph>>handleMouseMove: (in category 'events-processing') -----<br>  handleMouseMove: anEvent<br>+    anEvent wasHandled ifFalse: [self hoverRow: (self rowAtLocation: anEvent position)].<br>+         super handleMouseMove: anEvent.!<br>-     "Reimplemented because we really want #mouseMove when a morph is dragged around"<br>-   anEvent wasHandled ifTrue:[^self]. "not interested"<br>-        self hoverRow: (self rowAtLocation: anEvent position).<br>-       (anEvent anyButtonPressed and:[anEvent hand mouseFocus == self]) ifFalse:[^self].<br>-    anEvent wasHandled: true.<br>-    self mouseMove: anEvent.<br>-     (self handlesMouseStillDown: anEvent) ifTrue:[<br>-               "Step at the new location"<br>-                 self startStepping: #handleMouseStillDown: <br>-                  at: Time millisecondClockValue<br>-                       arguments: {anEvent copy resetHandlerFields}<br>-                         stepTime: 1].<br>- !<br><br>Item was added:<br>+ ----- Method: PluggableListMorph>>handlesMouseMove: (in category 'event handling') -----<br>+ handlesMouseMove: anEvent<br>+         ^ anEvent anyButtonPressed and: [anEvent hand mouseFocus == self]!<br><br>Item was changed:<br>  ----- Method: SimpleHierarchicalListMorph>>handleMouseMove: (in category 'events-processing') -----<br>  handleMouseMove: anEvent<br>+     anEvent wasHandled ifFalse: [self hoveredMorph: (self itemFromPoint: anEvent position)].<br>+     super handleMouseMove: anEvent.!<br>-     "Reimplemented because we really want #mouseMove when a morph is dragged around"<br>-   anEvent wasHandled ifTrue:[^self]. "not interested"<br>-        self hoveredMorph: (self itemFromPoint: anEvent position).<br>-   (anEvent anyButtonPressed and:[anEvent hand mouseFocus == self]) ifFalse:[^self].<br>-    anEvent wasHandled: true.<br>-    self mouseMove: anEvent.<br>-     (self handlesMouseStillDown: anEvent) ifTrue:[<br>-               "Step at the new location"<br>-                 self startStepping: #handleMouseStillDown: <br>-                  at: Time millisecondClockValue<br>-                       arguments: {anEvent copy resetHandlerFields}<br>-                         stepTime: 1].<br>- !<br><br>Item was added:<br>+ ----- Method: SimpleHierarchicalListMorph>>handlesMouseMove: (in category 'event handling') -----<br>+ handlesMouseMove: anEvent<br>+        ^ anEvent anyButtonPressed and: [anEvent hand mouseFocus == self]!<br><br><br></div></blockquote>
                                        </div></body>