The Trunk: Morphic-mt.1164.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Morphic-mt.1164.mcz

commits-2
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]].!