Marcel Taeumel uploaded a new version of MorphicTests to project The Trunk:
http://source.squeak.org/trunk/MorphicTests-mt.45.mcz==================== Summary ====================
Name: MorphicTests-mt.45
Author: mt
Time: 15 December 2017, 2:41:31.499738 pm
UUID: b37c9408-de4e-c241-97ea-ca024031cf67
Ancestors: MorphicTests-dtl.44
Adds test for focus events and reject bug.
=============== Diff against MorphicTests-dtl.44 ===============
Item was changed:
Morph subclass: #MorphForEventTests
+ instanceVariableNames: 'eventsDuringCapture eventsDuringBubble eventsRejected eventsFiltered handlesMouseDown keyStrokesReceived fullFocusDispatch'
- instanceVariableNames: 'eventsDuringCapture eventsDuringBubble eventsRejected eventsFiltered handlesMouseDown keyStrokesReceived'
classVariableNames: ''
poolDictionaries: ''
category: 'MorphicTests-Events'!
Item was added:
+ ----- Method: MorphForEventTests>>fullFocusDispatch (in category 'accessing') -----
+ fullFocusDispatch
+ ^ fullFocusDispatch ifNil: [false]!
Item was added:
+ ----- Method: MorphForEventTests>>fullFocusDispatch: (in category 'accessing') -----
+ fullFocusDispatch: aBoolean
+ fullFocusDispatch := aBoolean.!
Item was added:
+ ----- Method: MorphForEventTests>>processFocusEvent:using: (in category 'events-processing') -----
+ processFocusEvent: anEvent using: defaultDispatcher
+
+ ^ self fullFocusDispatch
+ ifTrue: [defaultDispatcher dispatchFocusEventFully: anEvent with: self]
+ ifFalse: [defaultDispatcher dispatchFocusEvent: anEvent with: self]
+
+
+ !
Item was added:
+ ----- Method: MorphicEventDispatcherTests>>test11FocusEventReject (in category 'tests') -----
+ test11FocusEventReject
+ "If a morph with mouse focus or keyboard focus rejects the event, that focus should be cleared."
+
+ | m1 m2 |
+ m1 := MorphForEventTests new.
+ m1 fullFocusDispatch: false.
+ m1 on: #mouseDown send: #hide to: m1.
+ m1 on: #keyStroke send: #hide to: m1.
+ m1 openInWorld: world.
+
+ hand newMouseFocus: m1.
+ hand handleEvent: (self redMouseDownAt: m1 center).
+ self assert: hand mouseFocus isNil.
+
+ hand newKeyboardFocus: m1.
+ hand handleEvent: (self keystroke: $x at: m1 center).
+ self assert: hand keyboardFocus isNil.
+
+ m2 := MorphForEventTests new.
+ m2 bounds: m1 bounds.
+ m1 addMorph: m2.
+ m1 fullFocusDispatch: true.
+
+ hand newMouseFocus: m1.
+ hand handleEvent: (self redMouseDownAt: m2 center).
+ self assert: hand mouseFocus isNil.
+
+ hand newKeyboardFocus: m2.
+ hand handleEvent: (self keystroke: $x at: m2 center).
+ self assert: hand keyboardFocus isNil.
+ !