Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1164.mcz==================== Summary ====================
Name: Morphic-mt.1164
Author: mt
Time: 4 June 2016, 7:23:27.090866 pm
UUID: 5e45c00f-7313-1449-86b4-7193cc8c0a62
Ancestors: Morphic-mt.1163
Fixes regression with system windows that get locked-in modally and thus have modal owners or a modal child. There was an endless loop then trying to #comeToFront.
CMD+K spawns a font chooser in every text morph, for example, which is modally locked to the underlying code editing window.
=============== Diff against Morphic-mt.1163 ===============
Item was changed:
----- Method: SystemWindow>>comeToFront (in category 'top window') -----
comeToFront
- "If I am modal, bring along my modal owning window and my model child as well. Ensure that my label is visible."
+ "Modal windows: Walk along the modal owner chain, the bring all to top."
+ self modalOwner ifNotNil: [:mo | mo isSystemWindow ifTrue: [
+ ^ mo modalOwner
+ ifNil: [mo comeToFrontModally]
+ ifNotNil: [:omo | omo comeToFront]]].
+ self modalChild ifNotNil: [^ self comeToFrontModally].
+
- "Model window: Bring up my modal owner behind me."
- self modalOwner ifNotNil:
- [ : mo | mo isSystemWindow ifTrue:
- [ mo comeToFront ] ].
-
"Now show me."
super comeToFront.
+
-
- "Modal window: Bring up my modal children in front of me."
- self modalChild ifNotNil:
- [ : modalChild | modalChild owner ifNotNil:
- [ modalChild comeToFront.
- ^ modalChild modalChild ifNil: [ modalChild flash ] ] ].
-
"Label should be visible to interact with."
self assureLabelAreaVisible.
"Handle historic companions. May be removed in the future."
self extantSketchEditor ifNotNil: [:sketchEditor |
sketchEditor comeToFront.
(self world findA: PaintBoxMorph) ifNotNil: [:pal | pal comeToFront]].!
Item was added:
+ ----- Method: SystemWindow>>comeToFrontModally (in category 'top window') -----
+ comeToFrontModally
+ "If I am modal, bring along my modal owning window and my model child as well."
+
+ super comeToFront.
+
+ "Bring up my modal children in front of me."
+ self modalChild ifNotNil: [:wnd |
+ wnd comeToFrontModally.
+ wnd modalChild ifNil: [wnd flash]].!