What's with Photoshop & multiple undos?

Over on feedback.photoshop.com, customer Michael Piontek notes the following:

Unlike most modern apps, Photoshop only has a single “undo”. If you press command-z a second time, Photoshop will redo the change instead of continuing to undo. Not even Illustrator or InDesign works this way at this point.

To work around this issue, I customize my keyboard shortcuts to use “step backward” (command-z) and “step forward” (command-shift-z). For the most part this works great and I’ve been very happy with it.

But it brings up a new problem: if I change the selected layer, then press command-z (“step backward”) then the layer change is undone as well.

Michael is touching on two separate issues:

  1. The keyboard shortcuts used for undo/redo
  2. Layer selection changes when using “step backward” instead of “undo”

1. Photoshop’s unusual Cmd-Z mapping is due to the fact that the app lets you toggle across multiple history states in one keypress.

For example, you might do something, then click 10 steps back in the History panel.  Let’s say you then hit Cmd-Z.  Would you expect Photoshop to undo the most recent operation (getting you back to where you’d been prior to the last click), or to go to the 11th-back history state (that is, to go further back in time)?  I’d expect PS to do what it does now: it undoes the click instead of digging me deeper.

I’m not sure it’s possible to preserve the current (and to my mind correct) behavior while also making Cmd-Z work in the more common way (which would also be correct). Of course PS could ask customers to make a choice via a dialog, but that’s just a recipe for blank stares.

2. I can’t think of a good reason for the current behavior. When Photoshop added multiple layer selection in CS2, we made some changes to avoid problems caused by old crutches for not having the ability to select more than one layer at a time. This behavior with the layer selection changing when using “step backward” appears to be a rough edge from that work, so it’s worth asking the team whether this behavior can be changed.

Note that a user has provided nice workaround leveraging a script.

[Thanks to Jeff Tranberry for his assistance in researching these questions.]

20 thoughts on “What's with Photoshop & multiple undos?

  1. Seems like Photoshop could offer a preference for this sort of thing to bring it in line with the rest of the apps in the suite so users wouldn’t have to remap their keyboards.
    [Well, the ability to change one’s shortcuts *is* a preference. Conceivably PS could ship with a different preset group that would provide the alternate mapping, and conceivably when the user first hits Cmd-Z it could ask which approach they prefer. In my experience (e.g. Cmd-H), though, people just stare blankly at such dialogs, then fault us for their not having read the text. –J.]
    I tend to agree with you John. The problem with Piontek’s approach is InDesign and Illustrator also don’t have a deep history panel where you can jump non-linearly in time. The casual Photoshop user might prefer it the way Michael likes it versus some hardcore drawing artists who live by jumping around in time.
    This might be a little confusing for some but it might be cool to be able to set keyboard shortcuts differently based on whatever workspace you’re using. Say you’re doing page layout/dtp where you need a more InDesign-like linear workflow versus the photo editing workspace might default to the Photoshop defaults. (Side benefit: that might also accommodate different users who use the same machine but don’t use separate user accounts, etc).
    [When you save a workspace today, you can choose whether it should apply keyboard shortcut changes. –J.]

  2. Speaking of history panels for Illustrator and InDesign…yes, please! Illustrator could use it more, but why not provide a consistent interface?
    One big benefit of the history panel is at-a-glance review of steps that you want to change…something that’s entirely invisible using keystroke undo.

  3. “For example, you might do something, then click 10 steps back in the History panel. I’d expect PS to do what it does now: it undoes the click instead of digging me deeper.”
    I’d expect it go go back in time. In essence, clicking on the history panel sends you back 10 command-z’s all in one fell swoop. If you want to “undo” the click, just click someplace else in the history timeline.
    All of those actions are undoable until you do a new action that branches the timeline from the current location.
    Incidentally, the go back, forward, branch behavior is what Adobe Dreamweaver uses as well. PS is broken.
    [See other commenters’ positions; your assessment is not universal. –J.]

  4. Please keep the current configuration, being able to go back several steps back in history and compare it with the current image in a single click is one of the most useful things in PS.

  5. The toggling of the Cmd-Z has been a mainstay of my Photoshop classes for years. The ability to rapidly flip between what that filter is doing and not doing, or that layer adjustment, and particularly with unsharp masks is critical. Having to change even a single finger position to flip back and forth would be a step backward, so to speak.
    Perhaps a ‘toggle last action’ command and shortcut could be a replacement, but Cmd-Z is the handiest of all handy commands. (At least for those who mouse with their right hands.)

  6. Didn’t really mean to say that my assessment was universal, just mine. (Well, that and the fact it’s the exact opposite of about every other program out there, including many from Adobe.)
    [Sorry, I didn’t mean to sound brusque. I’m frustrated that we can’t make this Just Work™ for everyone, all the time. It’s similar to the settings for performance or for layer selection: different scenarios/users require different approaches. –J.]
    And a command-shift-z (or some other key) could provide the toggling behavior.

  7. Thanks for putting this up here John,
    -this is a behavior of photoshop I’m quite invested in.
    http://forums.adobe.com/message/3795758#558277
    http://forums.adobe.com/message/2015917#2015917
    Personally, I use both the toggle and the step back commands, but never liked the layer change being clumped with my last brush stroke. Which is at the heart of this: changing the layer and brushing were two different actions, and they get treated as a single one by the step back queue, but not by the undo.
    While I see this is “by design” I’d argue the minor inconsistency between the scope of step back and undo is something “broken” – that can be fixed 🙂 Decoupling them would help me out a bunch, and I guess having layer as history items could be a good thing.
    I’d suggest keeping the status quo for everyone liking it, and making an option for the vocal minority to alter this behavior. People who are annoyed by this will find the preference, even without a blank-stare-inducing-dialog.
    The script on polycount didn’t work that well for me last time I installed it, it didn’t perform as snappy as the native undo / step back. That said, the guy who wrote it should get a medal.
    Again, I’m really happy you mentioned this here! – and now you got my hopes up for it being “fixed” some day – I know a lot of artists that will love this 🙂

  8. Am i missing something, If you hold Command-Option-Z, it will step you back all the way through your history, the way Command-Z does in other apps. And inversely Command-Shift-Z will step you forward.
    So i am confused why we need the script.

  9. @Ryan. Those work, but Photoshop has always been a little light in the settings modification department.
    Every seen the about:config page in Firefox? If there’s no one “right” way, the I think that many behaviors should be user configurable, like the undo sequence.

  10. I’m one of the people who changes the keyboard shortcut so that CTRL+Z and CTRL+Y work the way they do in other Adobe apps. Having the ability to customize these shortcuts is nice HOWEVER they only translate into the main application and NOT into any of the modal dialogs or other “modes” where you STILL need to do CTRL+ALT+Z to step back.
    For example, if you set your step backwards to CTRL+Z and step forwards to CTRL+Y, and you are in transform mode for an object (CTRL+T) and you try to undo a mistake (say you accidentally rotated an object) you are then NOT able to use CTRL+Z to step backwards even though you’ve customized the keyboard shortcut this way. Instead, you have to use the default of CTRL+ALT+Z.
    Customizing the keyboard shortcuts are great but these kinds of changes should propagate to ALL areas of the application otherwise what’s the point? This is one thing that seriously irritates me about PS currently.

  11. I agree that step back should not undo a layer change. I have found it to be a major annoyance. I also support Josh’s comment about custom keyboard shortcuts propagating.
    Scott

  12. What’s so difficult about using the keyboard shortcut Option (alt) + Command + Z to undo? Better yet is just go back as many steps as you want in history.

  13. As long as undo is the subject, how about listing a save operation in the history palette? Of course it would be insane to actually be able to “undo” a save operation, but I have often wanted to know exactly what I’ve done since I saved. It seems like it would be simple enough to add a “saved file” line in the history?
    One of those “JDI” requests I always forget to toss in there… 🙂

  14. When I teach Photoshop, undo functionality is one of the confusing parts for new users. Most users (of all programs) expect there to be one “undo” command, and I’d argue that it should do what Step Backward does now. Redo should be Step Forward. Essentially, I advise my students to use command-option-Z as “undo”.
    Using undo/redo to flick between “ten steps back” and “the present” is not a common usage in my experience, and something you could approximate with Layer Comps if needed.

    1. Flicking back and forth with cmd-z, especially by clicking back in history to see the difference your edits make to a previous state is VERY common. I work in prepress and EVERY colour operator uses this method for temporary comparisons of their work (layer comps are for permanently keeping a change)
      I would guess that anyone who’s used Photoshop for any considerable length of time uses the back and forth of cmd-z to start checking their edits.

  15. On my Mac keyboard the function key#1 is an undo/redo switch that I very handy but I never see it mentioned in discussions like these. Does anyone else use it?
    [Hmm–I’m not seeing it work that way in Mail or Safari. On my Mac it mainly lowers the brightness of the display. 😉 (And yes, I know about holding the Fn modifier.) In any case, I don’t think F1 would work cross-platform as it’s often mapped to Help on Windows (that, or “steal my stuff“). –J.]

  16. To me, the keyboard shortcut is perfect as it is (and, it’s editable, so not much of a problem).
    The second issue is annoying, so I’d vote for changing that behavior.

  17. To quite a few of the people posting here: I don’t think anyone wants to take your undo toggle away from you, nor the shortcut used for it. Reading the original post and the comments of people agreeing, it’s all about the undo-as-a-separate action in the history queue issue.

Leave a Reply

Your email address will not be published. Required fields are marked *