Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ct.1605.mcz==================== Summary ====================
Name: Morphic-ct.1605
Author: ct
Time: 7 December 2019, 4:21:04.854219 pm
UUID: 3c7d5454-0b60-2a47-91fd-51d333eeeb3b
Ancestors: Morphic-mt.1604
Delete dialog windows if curtailed
This can happen when the user debugs its invocation and then abandons the debugger, but also in the following example:
[self inform: 'Carpe Squeak!'] valueWithin: 2 seconds onTimeout: []
Imho, it would be a bad idea to keep such a dialog window open if nothing will happen after you react on it.
=============== Diff against Morphic-mt.1604 ===============
Item was changed:
----- Method: DialogWindow>>debugInvocation (in category 'running') -----
debugInvocation
+ Processor activeProcess
- [Processor activeProcess
debug: self findInvocationContext
+ title: 'Dialog invocation'!
- title: 'Dialog invocation']
- ifCurtailed: [self closeDialog].!
Item was changed:
----- Method: DialogWindow>>getUserResponse (in category 'running') -----
getUserResponse
| hand world |
self message ifEmpty: [messageMorph delete]. "Do not waste space."
self paneMorph submorphs
ifEmpty: ["Do not waste space and avoid strange button-row wraps."
self paneMorph delete.
self buttonRowMorph wrapDirection: #none].
hand := self currentHand.
world := self currentWorld.
self fullBounds.
self moveToPreferredPosition.
self openInWorld: world.
hand showTemporaryCursor: nil. "Since we are out of context, reset the cursor."
hand keyboardFocus in: [:priorKeyboardFocus |
hand mouseFocus in: [:priorMouseFocus |
self exclusive ifTrue: [hand newMouseFocus: self].
hand newKeyboardFocus: self.
+ [[self isInWorld] whileTrue: [world doOneSubCycle]]
+ ifCurtailed: [self abandon].
- [self isInWorld] whileTrue:[world doOneSubCycle].
hand newKeyboardFocus: priorKeyboardFocus.
hand newMouseFocus: priorMouseFocus]].
^ result!