Michael Binder wrote:
Hi everyone,
after another round of research I have found that I am not the first to
stumble on this bug....

Oops, I believe you now. ;) Sorry about all the long, tangential explanations.

I just did some tests and there is something weird going on. If a second answer dialog is executed immediately after the first, subsequent lines of code in my handler do not execute. What's odd, however, is that the "pass shutdownrequest" line at the very end of the handler *does* run -- but that seems to be the only thing.

To test, I created a new stack containing a single field. In the stack script, I put a single handler:

on shutdownrequest
  put the defaultstack & cr after fld 1
  answer "Quit?" with "Yes" or "No"
  put it into tChoice
  put "Test line is executing" & cr after fld 1
  if tChoice = "no" then
    put the defaultstack & cr after fld 1
  else
    pass shutdownrequest
  end if
end shutdownrequest

I created a standalone from this stack. The first time I try to quit (choosing "No" from the dialog), all lines execute. I see:

 stack "quitTest"
 Test line is executing
 stack "quitTest"


If I immediately try to quit again, I see nothing, no new lines are added to the field. I know the shutdownrequest message is being sent because the dialog appears, and if I choose "Yes" the app quits, which means it is being passed. But the commands in between do anything.

If I set the defaultstack specifically after the answer dialog:

on shutdownrequest
  put the defaultstack & cr after fld 1
  answer "Quit?" with "Yes" or "No"
  put it into tChoice
  set the defaultstack to "quitTest" -- ADDED THIS
  put "Test line is executing" & cr after fld 1
  if tChoice = "no" then
    put the defaultstack & cr after fld 1
  else
    pass shutdownrequest
  end if
end shutdownrequest

The problem is resolved, all lines execute, and you can run the handler repeatedly without any problem. It looks like an engine bug to me; the engine appears to lose track of the defaultstack after two repeated answer dialogs. It probably hasn't been noticed very often because so many other user actions will reset the defaultstack automatically, at which point the engine "knows" once again what it is.

Gotta thank Michael for being stubborn about this. Good catch.

--
Jacqueline Landman Gay         |     [EMAIL PROTECTED]
HyperActive Software           |     http://www.hyperactivesw.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to