<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>