A possible messaging and modal dialog bug...
J. Landman Gay
jacque at hyperactivesw.com
Sat Feb 27 00:10:16 CET 2016
On 2/26/2016 4:08 PM, Paul Dupuis wrote:
> What is unexpected is that the answer statement in the script of btn 2
> is NEVER executed! This seems like a BUG.
> What must be happening is that when the answer dialog is up (from btn 1)
> and equivalent of 'wait with messages" is occuring, so btn 2 then gets
> the "dataChanged" message from the pendingMessages and starts to
I think so too. Pending messages occur when an idle event happens, and a
dialog waiting for a response would have those.
> The puzzling behavior is that when the script of btn 2 gets to
> the answer statement, presumably because the answer dialog is already
> open, it just continues to the next statement. This seems wrong to me.
I think it has to be that way because you can only have one modal open
at a time, and the LC dialog is a stack. When the second command is
sent, it would be the same as a "go stack x" when stack x is already
open -- nothing changes.
When a LC dialog is called, the dialogData global is populated and the
dialog stack fills in its fields with the content of the dialogData on
preOpenCard. So I suspect that the dialogData is being changed, but
since the dialog is already open, the preOpenCard message isn't sent and
the fields do not re-populate. It looks like nothing has changed, since
only the dialogData global is different, and gives the impression that
the command was skipped.
> I have not tried this with, say my own modal dialog using the 'modal'
> command. I wonder if the same problem exists.
I'm pretty sure you'd get identical results unless you can populate the
dialog fields some other way (in which case you'd lose the user's first
response) or if you put up multiple modals at the same time. That's a
recipe for trouble though.
One fix for your handler would be to avoid "send in <time>" and put the
dialog commands serially into a handler. That way it will wait until the
first one closes, then re-open the second one.
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode