[squeak-dev] The Inbox: Morphic-tcj.2000.mcz

Marcel Taeumel marcel.taeumel at hpi.de
Thu Jun 9 08:57:17 UTC 2022


Hi Tim --

-100 for replacing "self activate" with "self submorphsDo: [:morph | morph unlock]"

I took quite some effort to make that active/inactive window stuff maintainable. We should not obfuscate the code again this way. Yet, I hear your concern that some configurations struggle with Morphic window drag. We have to find a solution that is better than exposing unmaintainable implementation details again.


Best,
Marcel
Am 06.06.2022 08:27:31 schrieb commits at source.squeak.org <commits at source.squeak.org>:
A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-tcj.2000.mcz

==================== Summary ====================

Name: Morphic-tcj.2000
Author: tcj
Time: 5 June 2022, 11:27:16.56143 pm
UUID: c9b2a85f-cde3-453b-9cb9-898c3420bc07
Ancestors: Morphic-mt.1999

Optimize dragging into SystemWindows by not performing a complete 'activate' on mouse enter (which includes waking up the model and redrawing all submorphs & text). Also, fix typo in another method comment.

=============== Diff against Morphic-mt.1999 ===============

Item was changed:
----- Method: SystemWindow>>mouseEnterDragging: (in category 'events') -----
mouseEnterDragging: evt
"unlock children for drop operations"

self flag: #performance. "mt: There may be no need to change appearance if no widget wants the drop."
self isActive ifTrue: [self lookFocused].

(self isActive not and: [evt hand hasSubmorphs]) ifTrue: [
+ self submorphsDo: [:morph | morph unlock]. "unlock contents for drop"
- self activate. "unlock contents for drop"
evt hand addMouseListener: self. "for drop completion on submorph"
].!

Item was changed:
----- Method: SystemWindow>>startDragFromLabel: (in category 'events') -----
startDragFromLabel: evt
+ "When label events are active, we need to pass dragging to the window explicitly.
- "When label events are active, we need to pass dragging to the window explicitely
The window only recognizes a drag with an offset of more than 3 pixels"

self isSticky ifTrue: [^ self].
self fastFramingOn
ifTrue: [self doFastFrameDrag: evt cursorPoint]
ifFalse: [
self hasDropShadow: false.
evt hand grabMorph: self topRendererOrSelf]
!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220609/5bd16e02/attachment.html>


More information about the Squeak-dev mailing list