closeStackRequest handling oddness - main stack keeps quitting out
chrism at lumin.us
Wed Feb 18 21:56:09 CST 2004
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:
answer "Quit program?" with "Yes" or "No"
if it is "Yes" then pass closeStackRequest
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):
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:
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"
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"
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.
More information about the use-livecode