The Trunk: Morphic-mt.1414.mcz

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

The Trunk: Morphic-mt.1414.mcz

Marcel Taeumel uploaded a new version of Morphic to project The Trunk:

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

Name: Morphic-mt.1414
Author: mt
Time: 16 April 2018, 9:35:16.658955 am
UUID: 2a24caed-3044-6745-a4dc-a12f474e7530
Ancestors: Morphic-cmm.1413

Preserve mouse focus after dialog invocation. For example, this fixes a rare bug concerning halo invocation (or dismissal).

=============== Diff against Morphic-cmm.1413 ===============

Item was changed:
  ----- Method: DialogWindow>>getUserResponse (in category 'running') -----
  | hand world |
  (ProvideAnswerNotification signal: self message asString)
  ifNotNil: [:answer|
  ^ answer = #default
  ifTrue: [result]
  ifFalse: [answer]].
  self message ifEmpty: [messageMorph delete]. "Do not waste space."
  self paneMorph submorphs ifEmpty: [self paneMorph delete]. "Do not waste space."
  hand := self currentHand.
  world := self currentWorld.
  self fullBounds.
  self moveToPreferredPosition.
  self openInWorld: world.
  hand showTemporaryCursor: nil. "Since we are out of context, reset the cursor."
  hand keyboardFocus in: [:priorKeyboardFocus |
+ hand mouseFocus in: [:priorMouseFocus |
+ self exclusive ifTrue: [hand newMouseFocus: self].
+ hand newKeyboardFocus: self.
- self exclusive ifTrue: [hand newMouseFocus: self].
- hand newKeyboardFocus: self.
+ [self isInWorld] whileTrue:[world doOneSubCycle].
- [self isInWorld] whileTrue:[world doOneSubCycle].
+ hand newKeyboardFocus: priorKeyboardFocus.
+ hand newMouseFocus: priorMouseFocus]].
- hand newKeyboardFocus: priorKeyboardFocus.
- hand releaseMouseFocus].
  ^ result!