“Cancel” is Not Just For Dialogs

One of my favorite features in Apple’s presentation software, Keynote, is the presenter display. During a presentation, the presenter can view additional information on the computer’s main screen, while the actual slideshow is displayed via a projector or on a secondary monitor.1

The items that can be viewed on the presenter display, are:

  • the current slide,
  • build-markers for the current slide,
  • the next slide,
  • a Ready to Advance indicator,
  • the current slide’s notes,
  • the current time, and
  • a timer showing either:
    • a configurable count-down, or
    • the time that has elapsed since starting the presentation.

I want to see what’s coming

When in customization mode — prominently indicated by a yellowish barber pole — all of these elements can be moved freely across the screen. Some can also be resized.

The default arrangement looks like this:

KeynotePresenterDisplayDefault

To show or hide an item in the presenter display, you un-/check its checkbox in an HUD-style dialog box.2

The buttons in the floating dialog box work just as you expect them to: when you click Cancel, all changes you made since entering customization mode will be discarded; clicking OK accepts those changes; and clicking either button will exit customization mode. If you prefer using a key press: the Escape and Return keys are properly assigned to the Cancel and OK buttons, respectively.

Take me back to where I was

There is one problem, though: if you click Use Defaults to restore the presenter view to its fresh-out-of-the-box layout, and then click Cancel, only part of the changes that were caused by pressing Use Defaults will be dismissed — namely the checkbox selection in the dialog box.

The size and position of the displayed elements, however, will remain at whatever the default settings are; they will not be discarded and, consequently, the layout will not be restored to what it was before you clicked Use Defaults.

Have a look at this screenshot, which, by the way, shows my favorite setup for the presenter display:

KeynotePresenterDisplayModified

After clicking Use Defaults, then leaving the customization mode by pressing Cancel, and finally going back to customization mode, this is what the screen looks like:

KeynotePresenterDisplayAfterDefaultCancel

My original selection of what to show on-screen has been preserved, but how those items are shown now reflects the application’s defaults that resulted from pressing Use Defaults in the dialog box.

I am certain that this behavior is a bug, but it serves as a good reminder of considering the proper context for user-selected actions.

The context of Cancel and Undo operations

Pressing the Cancel button is not just about dismissing a dialog box. Much rather, it’s about preventing recent changes from becoming permanent; recent changes that result from a user action.

In a way, you could think of the cancel button’s function as “anticipated undo.”

In the case of the presenter display in Keynote, the action to be “anticipatedly undone” is the entire customization of that presenter display, and not just the change of the selections within the confines of the dialog box.

On a related note, users should be able to easily predict what, exactly, will happen when selecting the actual Undo command from an application’s edit menu.

I’ve been stumped many a time by software applications that only support undoing a selection of actions, instead of every single action that the software lets you perform.

In such applications, if the most recent action, or actions, you performed are not undoable, a seemingly random one that you performed a few steps earlier will be undone, instead. The result of that undo is not be what you expected, and, also, not what you wanted.

Applications can very easily help their users understand what, exactly, will happen when using Undo or Redo, by simply naming the relevant action in the menu command’s label.

Here’s an example from the image editor Pixelmator that makes it perfectly clear what will happen when you execute the command:

PixelmatorUndo

Pixelmator even goes one step further: for some of its commands — including Undo, Redo, and selections — the application displays a small message on the screen that automatically disappears again after a moment. This message lists what action you just performed, like “Undo Selection,” as seen below.

PixelmatorUndoBezelMsg

Thanks to the combination of explicit Undo/Redo labels and this quick status “shout-out,” no guessing is required to understand what you just (un)did.


  1. To use the presenter display, you need to check the option “Use alternate display to view presenter information” in the Presenter Display preferences panel. If you wish to view it without a projector or second monitor attached to your Mac, select Rehearse Slideshow from the Play menu. 

  2. This modal dialog box should not have been outfitted with the standard Close Window button, because that button’s functionality is ambiguous: will closing the dialog box by clicking the close button discard any changes, or will it accept the current settings and layout, before leaving the customization mode?

    The Cancel and OK buttons make it perfectly clear what will happen if you click either one, and they also make the dialog box’s close widget redundant. Hence, the latter should simply not be there.