[squeak-dev] The Trunk: Morphic-eem.1737.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Mar 5 00:03:59 UTC 2021


Eliot Miranda uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-eem.1737.mcz

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

Name: Morphic-eem.1737
Author: eem
Time: 4 March 2021, 4:03:54.375892 pm
UUID: 789562ea-966c-8f4e-9941-5576a9653b4d
Ancestors: Morphic-eem.1736

Have HandMorph>>showEvent: avoid scribbling over the DockingBar.

=============== Diff against Morphic-eem.1736 ===============

Item was changed:
  ----- Method: HandMorph>>generateMouseEvent: (in category 'private events') -----
  generateMouseEvent: evtBuf 
  	"Generate the appropriate mouse event for the given raw event buffer"
  
  	| position buttons modifiers type trail stamp oldButtons evtChanged |
+ 	evtBuf first = lastEventBuffer first ifTrue: 
+ 		["Workaround for Mac VM bug, *always* generating 3 events on clicks"
+ 		evtChanged := false.
+ 		3 to: evtBuf size do:
+ 			[:i | (lastEventBuffer at: i) = (evtBuf at: i) ifFalse: [evtChanged := true]].
+ 		evtChanged ifFalse: [^nil]].
- 	evtBuf first = lastEventBuffer first 
- 		ifTrue: 
- 			["Workaround for Mac VM bug, *always* generating 3 events on clicks"
- 
- 			evtChanged := false.
- 			3 to: evtBuf size
- 				do: [:i | (lastEventBuffer at: i) = (evtBuf at: i) ifFalse: [evtChanged := true]].
- 			evtChanged ifFalse: [^nil]].
  	stamp := evtBuf second.
  	stamp = 0 ifTrue: [stamp := Sensor eventTimeNow].
  	position := evtBuf third @ evtBuf fourth.
  	buttons := evtBuf fifth.
  	modifiers := evtBuf sixth.
  
  	type := buttons = 0 
  			ifTrue:
  				[lastEventBuffer fifth = 0 		
  					ifTrue: [#mouseMove] 		"this time no button and previously no button .. just mouse move"
  					ifFalse: [#mouseUp]]		"this time no button but previously some button ... therefore button was released"
  			ifFalse:
  				[buttons = lastEventBuffer fifth
  						ifTrue: [#mouseMove]	"button states are the same .. now and past .. therfore a mouse movement"
  						ifFalse:					"button states are different .. button was pressed or released"
  							[buttons > lastEventBuffer fifth
  								ifTrue: [#mouseDown]
  								ifFalse:[#mouseUp]]].
  	buttons := buttons bitOr: (modifiers bitShift: MouseEvent numButtons).
  	oldButtons := lastEventBuffer fifth bitOr: (lastEventBuffer sixth bitShift: MouseEvent numButtons).
  	lastEventBuffer := evtBuf.
  	type == #mouseMove ifTrue: 
  		[trail := self mouseTrailFrom: evtBuf.
  		^MouseMoveEvent new 
  			setType: type
  			startPoint: self position
  			endPoint: trail last
  			trail: trail
  			buttons: buttons
  			hand: self
  			stamp: stamp].
  	^MouseButtonEvent new 
  		setType: type
  		position: position
  		which: (oldButtons bitXor: buttons)
  		buttons: buttons
  		nClicks: (evtBuf seventh ifNil: [0])
  		hand: self
  		stamp: stamp!

Item was changed:
  ----- Method: HandMorph>>showEvent: (in category 'events-debugging') -----
  showEvent: anEvent
  	"Show details about the event on the display form. Useful for debugging."
  	"ShowEvents := true"
  	"ShowEvents := false"
+ 	| message borderWidth heightOffset |
- 	| message borderWidth |
  	ShowEvents == true ifFalse: [^ self].
  	
  	borderWidth := 5.
  	message := String streamContents: [:strm |
  		strm
  			nextPutAll: '[HandMorph >> #showEvent:]'; cr;
  			nextPutAll: 'event'; tab; tab; tab; tab; nextPutAll: anEvent printString; cr;
  			nextPutAll: 'keyboard focus'; tab; tab; nextPutAll: self keyboardFocus printString; cr;
  			nextPutAll: 'mouse focus'; tab; tab; nextPutAll: self mouseFocus printString].
  		
  	message := message asDisplayText
  		foregroundColor: Color black
  		backgroundColor: Color white.
+ 	heightOffset := (owner submorphs detect: [:m| m isDockingBar] ifNone: [])
+ 						ifNil: [0]
+ 						ifNotNil: [:m| m height].
- 	
  	"Offset to support multiple hands debugging."
+ 	Display fill: (0 @ heightOffset extent: message form extent + (borderWidth asPoint * 2)) rule: Form over fillColor: Color white.
+ 	message displayOn: Display at: (borderWidth @ heightOffset) + (0 @  ((owner hands indexOf: self) - 1 * message form height)).!
- 	Display fill: (0 @ 0 extent: message form extent + (borderWidth asPoint * 2)) rule: Form over fillColor: Color white.
- 	message displayOn: Display at: borderWidth asPoint + (0 @  ((owner hands indexOf: self) - 1 * message form height)).!

Item was added:
+ ----- Method: MouseButtonEvent>>moveRightButtonChanged (in category 'accessing') -----
+ moveRightButtonChanged
+ 	"Answer if the move right mouse button has changed. This is the move left button on gaming mice."
+ 
+ 	^ whichButton anyMask: 16!



More information about the Squeak-dev mailing list