closeStackRequest handling oddness - main stack keeps quitting out

Christopher Mitchell chrism at lumin.us
Wed Feb 18 22:56:09 EST 2004


Hello, again...

I have three stacks - a "main" stack acting as a menu with buttons that 
should  be highlighted when that particular function is activated, and 
(currently only) 2 windows that pop up when my one button is activated. 
  they are supposed to be closed when that button is clicked again.

Well, strange things are happening now that I moved my menu toolbar 
onto my main stack, and there is some weird interaction in the realm of 
close stack handling.

This script is in the main stack, thus inherited all around:

on closeStackRequest
   answer "Quit program?" with "Yes" or "No"
   if it is "Yes" then pass closeStackRequest
end closeStackRequest

on closeStack
   quit
end closeStack

--
to make this behavior not happen in the other two stacks open, I have 
put this in each one (if there is a way to localize a handler to 
prevent inheritance, please let me know):

on closeStackRequest

end closeStackRequest

--

finally, I have this button script on the main stack which go's to and 
closes the two substacks, as well as toggles the highlight of the 
button itself and a custom property to keep tabs on its status:

on mouseUp
   if the selectStatus of me is "off" then
     set the selectStatus of me to "on"
     set the hilight of me to true
     set the defaultStack to "consonants"
     go stack "consonants"
     palette stack "controls"
   else
     set the selectStatus of me to "off"
     set the highlight of me to false
     close stack "consonants"
     close stack "controls"
     set the defaultStack to "main"
   end if
end mouseUp
--

Okay, this was all working well until I got rid of the SUBSTACK 
toolbar, which had previously been my visible main menu and handled the 
close request/program quitting. because it is a sibling, it did not 
mess with the other substacks.  Now, however, the main stack causes all 
the stacks to inherit this functionality, and even though they are 
blocked off with an empty pair of handlers to override the main 
function, everytime I click the button the second time (thus to "close" 
the other two stacks and turn off the highlighting) the whole thing 
closes WITHOUT going through the "Do you want to quit" handler!

I don't see why the main stack would be receiving a close stack message 
here, and certainly why, if it were receiving this message, my Yes or 
No handler would be over-ridden.

If anyone has time to instruct me in the errors of my ways here, I'd 
appreciate it as it is driving me batty.

Yours,
Chris



More information about the use-livecode mailing list