[squeak-dev] The Inbox: Morphic-bp.1317.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Dec 8 20:07:49 UTC 2016


A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-bp.1317.mcz

==================== Summary ====================

Name: Morphic-bp.1317
Author: bp
Time: 8 December 2016, 9:07:14.528425 pm
UUID: 6ed0a859-f5e2-423a-b600-fd5a45aa0736
Ancestors: Morphic-bp.1316

Make Drag To Edges also work if fastDragWindowForMorphic is turned off

=============== Diff against Morphic-bp.1316 ===============

Item was changed:
  MorphicModel subclass: #SystemWindow
+ 	instanceVariableNames: 'labelString stripes label closeBox collapseBox paneMorphs paneRects collapsedFrame fullFrame isCollapsed isActive isLookingFocused menuBox mustNotClose labelWidgetAllowance updatablePanes allowReframeHandles labelArea expandBox savedBounds'
- 	instanceVariableNames: 'labelString stripes label closeBox collapseBox paneMorphs paneRects collapsedFrame fullFrame isCollapsed isActive isLookingFocused menuBox mustNotClose labelWidgetAllowance updatablePanes allowReframeHandles labelArea expandBox'
  	classVariableNames: 'ClickOnLabelToEdit CloseBoxFrame CloseBoxImageFlat CloseBoxImageGradient CollapseBoxImageFlat CollapseBoxImageGradient DoubleClickOnLabelToExpand DragToEdges ExpandBoxFrame ExpandBoxImageFlat ExpandBoxImageGradient FocusFollowsMouse GradientWindow HideExpandButton MenuBoxFrame MenuBoxImageFlat MenuBoxImageGradient ResizeAlongEdges ReuseWindows RoundedWindowCorners TopWindow WindowTitleActiveOnFirstClick WindowsRaiseOnClick'
  	poolDictionaries: ''
  	category: 'Morphic-Windows'!
  
  !SystemWindow commentStamp: '<historical>' prior: 0!
  SystemWindow is the Morphic equivalent of StandardSystemView -- a labelled container for rectangular views, with iconic facilities for close, collapse/expand, and resizing.
  
  The attribute onlyActiveOnTop, if set to true (and any call to activate will set this), determines that only the top member of a collection of such windows on the screen shall be active.  To be not active means that a mouse click in any region will only result in bringing the window to the top and then making it active.!

Item was changed:
  ----- Method: SystemWindow>>handleListenEvent: (in category 'events') -----
  handleListenEvent: aUserInputEvent 
  	"See #mouseEnterDragging:. Watch for finished drag-and-drop action and lock contents accordingly."
- 
  	(aUserInputEvent isMouse and: [ aUserInputEvent hand hasSubmorphs not ]) ifTrue: 
  		[ self isKeyWindow ifFalse: [ self passivateIfNeeded ].
+ 		aUserInputEvent hand removeMouseListener: self ].
+ 
+ 	(aUserInputEvent hand submorphs includes: self) ifTrue: [
+ 		| clearArea selector |
+ 		clearArea := ActiveWorld clearArea.
+ 		(self class dragToEdges and: [(selector := self dragToEdgesSelectorFor: aUserInputEvent cursorPoint in: clearArea) notNil])
+ 			ifTrue: [
+ 				savedBounds ifNil: [savedBounds := self bounds].
+ 				self newBounds: (clearArea perform: selector)]
+ 			ifFalse: [
+ 				savedBounds ifNotNil: [
+ 					self newBounds: savedBounds.
+ 					savedBounds := nil]]]!
- 		aUserInputEvent hand removeMouseListener: self ].!

Item was changed:
  ----- Method: SystemWindow>>justDroppedInto:event: (in category 'geometry') -----
  justDroppedInto: aMorph event: anEvent
+ 	savedBounds := nil.
- 
  	isCollapsed
  		ifTrue: [self position: ((self position max: 0 at 0) grid: 8 at 8).
  				collapsedFrame := self bounds]
  		ifFalse: [fullFrame := self bounds].
  
  	self beKeyWindow.
  	self hasDropShadow: Preferences menuAppearance3d. "See #startDragFromLabel:."
  			
  	aMorph == self world ifTrue: [self assureLabelAreaVisible].
  
  	(Project uiManager openToolsAttachedToMouseCursor and: (self hasProperty: #initialDrop))
  		ifTrue: [
  			self removeProperty: #initialDrop.
  			(self submorphs detect: [:m | m isKindOf: BottomRightGripMorph] ifNone: [])
  				ifNotNil: [:grip | 
  					grip
  						referencePoint: anEvent position;
  						setProperty: #targetHadDropShadow toValue: true "See MorphicToolBuilder >> #open:".
  					self hasDropShadow: false.
  					anEvent hand newMouseFocus: grip]].
  			
  	^super justDroppedInto: aMorph event: anEvent!

Item was changed:
  ----- Method: SystemWindow>>startDragFromLabel: (in category 'events') -----
  startDragFromLabel: evt
  	"When label events are active, we need to pass dragging to the window explicitely
  	 The window only recognizes a drag with an offset of more than 3 pixels"
  	
  	self isSticky ifTrue: [^ self].
  	self fastFramingOn 
  		ifTrue: [self doFastFrameDrag: evt cursorPoint]
  		ifFalse: [
  			self hasDropShadow: false.
+ 			evt hand grabMorph: self topRendererOrSelf.
+ 			evt hand addMouseListener: self]
- 			evt hand grabMorph: self topRendererOrSelf]
  !



More information about the Squeak-dev mailing list