Several people gave helpful replies to my question, including pointing out that 
this is a case of “resumeStack”, not “openCard”:

Is there some simple way that an openCard handler can branch based on what card 
it is coming from?

When a user goes to a different card in a stack, or to a different stack, I use 
an “openCard” handler to set things up.  But I do not want those actions taken 
if the user is merely “returning” to a card after using a palette tool, or 
after a palette tool has been opened.

Jacqueline Gay suggested using the “recentCards” to determine what card the 
user is coming from.  So I wrote this handler:

function resumedTheSameCard
  -- call this in a "resumeStack" handler.
  -- returns true if palette "tTools" has just been active and the resumeStack 
message was received by the same card that had been active when that palette 
was activated.
  -- returns false if we are coming from a different card, either directly or 
with a palette activation in between.
  get the recentCards
  if the long id of stack "tTools" is not in line 2 of it then return false -- 
nb should work even if palette "tTools" stack has several cards
  return line 1 of it = line 3 of it
end resumedTheSameCard

But this does not work.  When I debug, I see that line 2 of the recentCards 
does not refer to a card on my palette stack (“tTools”); it refers instead to a 
card in the stack “Execution Contexts”.

Why is that LiveCode system stack appearing in the recentCards, and why is my 
palette not appearing there?

Many thanks.

David Epstein
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to