Jump to content

[Request] Option to make layer visibility changes not part of undo


Recommended Posts

I often turn layers on or off to change the background color so I can see how a transparent image will look with different backgrounds.  If I switch this a lot, it really clogs up the undo, and makes "undo/redo" (for "check by blink" of changes) very painful.

 

Since changing a layer's visibility is completely non-destructive, and can never be done en masse (which might be hard to manually undo), it probably shouldn't be part of the undo stack at all.  But, it's there, and many people might like it.  I don't, so I'd like an option that can be enabled that keeps it from being added to the undo stack.

Link to post
Share on other sites

The visibility flag is part of the image, it can't just be removed from the history stack.

 

What might make sense, however, is to detect if the previous item in the history is for the opposite command and to translate "click on visible flag" into "undo" instead.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to post
Share on other sites
20 minutes ago, Rick Brewster said:

The visibility flag is part of the image, it can't just be removed from the history stack.

 

Well, it certainly could be removed if you wanted it to be, since there are a lot of things on the undo stack that aren't part of the image (like a selection that had nothing done with it).

 

That's kind of the problem with the undo.  For example, since setting a primary/secondary color isn't "part of the image", it isn't part of undo, but accidentally changing the color without noticing (stray click on the palette) is far more damaging than hiding/showing a layer. Likewise, having to change the "Tolerance" for the magic wand, and then backing out with undo beyond a paint bucket that used exactly the right tolerance, and then any action that goes on the undo stack will make it impossible to exactly redo that paint bucket.  And, changing the active layer isn't part of the undo stack, but I suspect most people would agree that this is far more important with respect to editing the image than changing layer visibility.

 

Adding an undo stack for tool config would help with this, but there would still be a lot of stuff on the undo stack that has almost zero value, like most selections.  One thing I seem to want to do a lot is select an area on one layer, delete it, and then select the exact same spot on another layer and delete it.  The fact that the selections are on the undo stack makes me try to find a way to make this work, but there is no way.  Sure, I could use the select/new "template" layer/activate layer/disable anti-aliasing/paint bucket/enable anti-aliasing to get the selection, then magic wand/change layer/delete/change layer to "template" and repeat this for all the layers method, but...wow, that's painful when layer multi-select or being able to "redo" an arbitrary item on the undo stack (like the selection) would be far easier.

Link to post
Share on other sites

Well, it certainly could be removed if you wanted it to be, since there are a lot of things on the undo stack that aren't part of the image (like a selection that had nothing done with it).

No, that's not quite right. Selections are intentionally added to the history stack. You're requesting that I remove something from the history which actually does -- by definition -- need to be there. Selections don't need to be there because, by themselves, they aren't actually part of the image. It's a workflow design choice.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to post
Share on other sites
On 4/27/2018 at 7:58 PM, Rick Brewster said:

You're requesting that I remove something from the history which actually does -- by definition -- need to be there. Selections don't need to be there because, by themselves, they aren't actually part of the image. It's a workflow design choice.

 

The trouble with layer visibility is that it is tied to the active layer, but the active layer isn't part of the undo.

 

Here's an example:

 

1. In a drawing with at least two layers, both visible, make the first layer active.

2. Select an area, and hit "Delete".

3. Make the current layer invisible...this also moves the active layer to the other layer.

4. Undo twice...you now have the original drawing, with a selection.

 

At this point, "Delete" or "Redo" should have the exact same effect, but they don't, because you are now on a different layer.

 

My point is that there is already a lot of inconsistency in the redo stack.  Some are changes to the drawing, some are for "workflow" (as you put it).  So, making some changes to it that are optional and not the default that make the workflow better in some ways should at least get some consideration.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...