Marcel Taeumel uploaded a new version of Morphic to project The Trunk: http://source.squeak.org/trunk/Morphic-mt.1004.mcz
==================== Summary ====================
Name: Morphic-mt.1004 Author: mt Time: 4 September 2015, 8:37:36.913 am UUID: a6373ade-f974-0e41-8609-316d092a7215 Ancestors: Morphic-eem.1003
Do not degrade rounded rectangles to ovals if the radius happens to be bigger than the extent. Ovals do not look at all like rectangles. Especially wide ones.
=============== Diff against Morphic-eem.1003 ===============
Item was changed: ----- Method: BalloonCanvas>>frameRoundRect:radius:width:color: (in category 'drawing-rectangles') ----- frameRoundRect: aRectangle radius: radius width: borderWidth color: borderColor | outerPoints innerRect innerRadius innerPoints | (borderWidth isZero or:[borderColor isTransparent]) ifTrue:[^self]. radius asPoint <= (0@0) ifTrue:[^self frameRectangle: aRectangle width: borderWidth color: borderColor]. - (radius * 2) asPoint >= aRectangle extent - ifTrue:[^self frameOval: aRectangle width: borderWidth color: borderColor]. "decompose inner rectangle into bezier shape" innerRect := aRectangle insetBy: borderWidth. innerRect area <= 0 ifTrue:[^self fillRoundRect: aRectangle radius: radius fillStyle: borderColor]. innerRadius := (radius - borderWidth) asPoint. innerPoints := self makeRoundRectShape: innerRect radius: innerRadius. "decompose outer rectangle into bezier shape" outerPoints := self makeRoundRectShape: aRectangle radius: radius. self drawGeneralBezierShape: (Array with: outerPoints with: innerPoints) color: borderColor borderWidth: 0 borderColor: nil.!
Item was changed: ----- Method: FormCanvas>>frameRoundRect:radius:width:color: (in category 'drawing-rectangles') ----- frameRoundRect: aRectangle radius: radius width: borderWidth color: borderColor "Frame a rounded rectangle with the given attributes." | innerRect | (borderWidth isZero or:[borderColor isTransparent]) ifTrue:[^self]. radius asPoint <= (0@0) ifTrue:[^self frameRectangle: aRectangle width: borderWidth color: borderColor]. - (radius * 2) asPoint >= aRectangle extent - ifTrue:[^self frameOval: aRectangle width: borderWidth color: borderColor]. "decompose inner rectangle into bezier shape" innerRect := aRectangle insetBy: borderWidth. innerRect area <= 0 ifTrue:[^self fillRoundRect: aRectangle radius: radius fillStyle: borderColor]. self setFillColor: borderColor. port frameRoundRect: (aRectangle translateBy: origin) truncated radius: radius truncated borderWidth: borderWidth truncated. !
packages@lists.squeakfoundation.org