[squeak-dev] The Trunk: Monticello-bf.535.mcz
Bert Freudenberg
bert at freudenbergs.de
Mon Apr 15 06:53:19 UTC 2013
On 14.04.2013, at 23:37, Levente Uzonyi <leves at elte.hu> wrote:
> On Sun, 14 Apr 2013, Chris Muller wrote:
>
>> Let me try again. This is the bug where sometimes clicking "Ok" on
>> the MCSaveVersionDialog -- nothing happens and the package doesn't get
>> saved..?
>
> That happens when you modify the package after opening the dialog.
>
>
> Levente
No. It happens when a debugger popped up and you close it instead of proceeding.
MC is looping in #showModally waiting for the dialog to be closed. The debugger creates a new UI process, the old one running our loop is suspended.
- Bert -
>
>>
>> I haven't researched this, is there some reason this dialog must have
>> a separate process instead of just a simple callback when OK or Cancel
>> is pressed?
>>
>> On Sun, Apr 14, 2013 at 11:09 AM, Chris Muller <asqueaker at gmail.com> wrote:
>>> Arrrgghh!!! I just don't understand why you seem to LOVE modal
>>> warnings and messages don't you? The problem here is the modality of
>>> the dialog in the first place, the solution should be to get rid of
>>> that not to layer on more modality.
>>>
>>> The user should be directing the computer, not vice-versa.
>>>
>>> On Thu, Apr 11, 2013 at 7:42 PM, <commits at source.squeak.org> wrote:
>>>> Bert Freudenberg uploaded a new version of Monticello to project The Trunk:
>>>> http://source.squeak.org/trunk/Monticello-bf.535.mcz
>>>>
>>>> ==================== Summary ====================
>>>>
>>>> Name: Monticello-bf.535
>>>> Author: bf
>>>> Time: 11 April 2013, 5:42:14.486 pm
>>>> UUID: 29816693-6d94-4dd7-ab81-c8ede42620ef
>>>> Ancestors: Monticello-bf.534
>>>>
>>>> Warn user about an interrupted modal dialog.
>>>>
>>>> =============== Diff against Monticello-bf.534 ===============
>>>>
>>>> Item was changed:
>>>> Model subclass: #MCTool
>>>> + instanceVariableNames: 'morph label modalProcess modalValue'
>>>> - instanceVariableNames: 'morph label modal modalValue'
>>>> classVariableNames: ''
>>>> poolDictionaries: ''
>>>> category: 'Monticello-UI'!
>>>>
>>>> Item was changed:
>>>> ----- Method: MCTool>>answer: (in category 'morphic ui') -----
>>>> answer: anObject
>>>> + (modalProcess notNil and: [modalProcess ~~ Processor activeProcess])
>>>> + ifTrue: [^self inform: 'This modal dialog was interrupted, please close it'].
>>>> modalValue := anObject.
>>>> self close.!
>>>>
>>>> Item was changed:
>>>> ----- Method: MCTool>>show (in category 'morphic ui') -----
>>>> show
>>>> + modalProcess := nil.
>>>> - modal := false.
>>>> Smalltalk at: #ToolBuilder ifPresent: [:tb | tb open: self. ^ self].
>>>> ^self window openInWorldExtent: self defaultExtent; yourself!
>>>>
>>>> Item was changed:
>>>> ----- Method: MCTool>>showLabelled: (in category 'morphic ui') -----
>>>> showLabelled: labelString
>>>> + modalProcess := nil.
>>>> - modal := false.
>>>> self label: labelString.
>>>> ^(self window)
>>>> openInWorldExtent: self defaultExtent;
>>>> yourself!
>>>>
>>>> Item was changed:
>>>> ----- Method: MCTool>>showModally (in category 'morphic ui') -----
>>>> showModally
>>>> + modalProcess := Processor activeProcess.
>>>> - modal := true.
>>>> self window openInWorldExtent: (400 at 400).
>>>> [self window world notNil] whileTrue: [
>>>> self window outermostWorldMorph doOneCycle.
>>>> ].
>>>> morph := nil.
>>>> ^ modalValue!
>>>>
>>>>
>>
>>
>
More information about the Squeak-dev
mailing list
|