[squeak-dev] The Trunk: Morphic-mt.1164.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Jun 4 17:24:03 UTC 2016


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



More information about the Squeak-dev mailing list