Name: closeControl

Type: message

Syntax: closeControl

Summary:
Sent to a <group> when the user is leaving the <card> that contains it.

Associations: group

Introduced: 3.5

OS: mac, windows, linux, ios, android

Platforms: desktop, server, mobile

Example:
on closeControl
  deleteTemporaryObjects
  pass closeControl
end closeControl

Description:
Handle the <closeControl> message if you want to perform clean-up or do
other tasks when the user leaves a card.

A <group> is closed when the user either goes to a card that doesn't
have the group on it, or closes the stack. Groups with their
<backgroundBehavior> <property> set to true are sent the message when the
user goes to a card that the group is not placed on from one where it
is, as well as when the stack is closed.

The <closeControl> message is sent to groups just before the 
<closeCard message> is sent to the <card> being closed. For nested groups
it is sent to the parent group first, then if passed or not handled, it
passes through each child group in reverse layer order (from highest to
lowest). 

For groups with their <backgroundBehavior> <property> set to true, the
<closeControl> message is sent after the <closeCard> <message>, and just
before the <closeBackground> <message>.

The actual closing is not triggered by the <closeControl> message, so
blocking it will not stop the card being closed.

References: dispatch (command), closeCard (message), message (glossary),
openControl (message), closeBackground (message), card (object),
group (object), backgroundBehavior (property), property (glossary)

