2014-12-14 22:14 GMT+01:00 Tommaso Dal Sasso <tommaso.dalsa...@gmail.com>:
>
>
> On 14/12/14 21:44, stepharo wrote:
>
>> I got the same problem when I put an Halt pressing on any button leads to
>> the opening of the same UI.
>> I wonder if there is not an interaction between spec and the UI modal
>> opening.
>> I read the code of ImageModel and I did not find anything special.
>>
>>  Yes, I thought as well that could be something regarding modal UI, but I
> have so little knowledge of Spec and the way it interacts with Morphic that
> I could not tell more.
> OK, it works correctly if I put the dialog code inside a block and i fork
> it, so probably the modal window blocks the way the action of the icon is
> triggered.
>


No, it is not related to spec, just the way the imagemodel adapter uses
morphics click event for the action dispatching.
You can simulate the same (buggy) behavior on pure morphic:

|m|
m:= Morph new.
m on:#click send:#value to:[m confirm:'Really?'].
m openInWorld.


MouseClickEvent processing and modal dialogs don't work.




>
> I'll try to investigate more.
> Thanks for the feedback,
>
> Tommaso
>
>
>  Stef.
>> Le 14/12/14 20:26, Tommaso Dal Sasso a écrit :
>>
>>> I have a weird behavior building an interface with Spec.
>>>
>>> I have a window built with Spec, and I want to add a button that shows a
>>> dialog with some text.
>>> To display the dialog I use the following line:
>>>
>>> UIManager default longMessage: 'a text message' title: 'some title'.
>>>
>>> And I hooked this code to a widget through the #action: method.
>>> The problem is: If I use a ButtonModel, the code behaves correctly
>>> showing the dialog.
>>> If I use an instance of the class ImageModel to display an icon, the
>>> dialog is displayed but the interface "hangs", in the sense that the "ok"
>>> button won't close the dialog and every click would spawn a new dialog.
>>>
>>> I would like to use an icon because it integrates better with the
>>> interface.
>>> Do you know if it is a bug or if I am doing something wrong?
>>>
>>> Thanks,
>>> Tommaso
>>>
>>>
>>> P.s.: Steps to reproduce
>>>
>>> If you need a working example you can inspect the code on the bleeding
>>> edge version of ShoreLine Reporter by following these instructions:
>>> 1. download a recent Pharo 4 image;
>>> 2. open a workspace and run: ConfigurationOfShoreLineReporter
>>> loadBleedingEdge
>>> 3. trigger an exception (for example by running 3/0 in a workspace).
>>> 4. click 'Report'
>>> 5. click the '?' button on the right side of the window.
>>>
>>>
>>>
>>>
>>
>>
>
>

Reply via email to