2014-12-14 23:52 GMT+01:00 Tommaso Dal Sasso <[email protected]>: > > > On 14/12/14 22:59, Nicolai Hess wrote: > >> 2014-12-14 22:14 GMT+01:00 Tommaso Dal Sasso <[email protected] >> <mailto:[email protected]>>: >> >> >> 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. >> >> Sorry, I wrote it badly. Of course it is an issue of Morphic, thanks for > your clarification. > So, is it a bug or it just works that way and it is supposed to do so by > architectural design? >
I think it is a bug on morphics mouse click handling. The UI-element for a ButtonModel is a PluggableButtonMorph, it already has support for handling "clicks", but it only acts on mouse up /(or mouse down) An ImageMorph don't have this by default, so the ImageModel adapter installs a eventhandler with on:event do:action and the creator of Spec choosed #mouseUp for the mouse event to act on. Nicolai > > The interesting thing is that with a button it works. > > Tommaso > > > >> >> >> 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. >> >> >> >> >> >> >> >> > >
