• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
21

P: Incorrect history steps when using keyboard shortcuts to adjust Develop sliders

LEGEND ,
Nov 26, 2023 Nov 26, 2023

Copy link to clipboard

Copied

When using the keyboard shortcuts "=" or "-" to adjust a Develop slider, an adjustment to another slider with the mouse is incorrectly included in the history step for the first slider.  This doesn't happen when you make the adjustments solely with the mouse. 

 

In a related bug, if you adjust a Develop slider with the shortcut and then quickly click Reset, "Reset" appears as a history step before the slider.

 

To reproduce in LR 13.0.1 / Mac OS 14.1:

 

In screen recording tracking1.mp4:

 

1. Reset the settings on a photo and clear the history.

 

2. Click on the "Exposure" label to select that slider.

 

3. Quickly type "=" three times and then immediately use the mouse to click on the right end of the Contrast slider.

 

4. Observe that there is just one history step, "Exposure +0.30 0.30", even though Contrast is now +65 (or whatever value you clicked).

 

5. Set Contrast to -100, and observe there is now (correctly) a second history step, "Contrast -165 -100".

 

6. Click on the Exposure history step and observe the Contrast slider gets restored to +65, demonstrating that it was part of that history step.

 

7. Reset the settings and clear the history.

 

8. Slowly move Exposure from 0 to 3 and then immediately click on the right end of the Contrast slider (around +80).

 

9. Observe that there are correctly two history steps, one for Exposure and one for Contrast.

 

In screen recording tracking2.mp4:

 

10. Reset the settings and clear the history.

 

11. Click on the "Exposure" label to select that slider.

 

12. Quickly type "=" three times and then click Reset with the mouse.

 

13. Observe that the Reset history step incorrectly occurs  before the Exposure step.

 

 

Bug Investigating
TOPICS
macOS , Windows

Views

420

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Pinned Reply

Adobe Employee , Nov 27, 2023 Nov 27, 2023

Logged and status updated

Status Investigating

Votes

Translate

Translate
5 Comments
Enthusiast ,
Nov 26, 2023 Nov 26, 2023

Copy link to clipboard

Copied

Adding to this bug my own findings.

 

  • History is broken if we change a second settings before a step is recorded after using API.

 

Steps to reproduce:

 

0. Download the Folder called "Scripts".

Link: https://www.dropbox.com/scl/fo/hb9v6lpyl9i8qjh77z9aj/h?rlkey=3hnzwxiopbucd4h065h537iul&dl=0

 

0.1. Add the folder to the following location depending on your system:

 

  • [Windows] C:\Users\[user name]\AppData\Roaming\Adobe\Lightroom
  • [Mac OS] /Users/[user name]/Library/Application Support/Adobe/Lightroom

 

If you already have a Scripts folder then simply add the included script there (the script contained is the following and increases Exposure by +0,1)

 

 

local LrDevelopController = import "LrDevelopController"
LrDevelopController.increment ("Exposure2012")

 

 

1. Launch LrC

2. Select a photo, and go in develop module.

3. For the sake of the test clear history, then Reset the photo (you will end having one history step called "Reset Settings")

4. Open the Scripts folder by clicking the "Pergamene" icon at the top.

 

Screenshot 2023-11-27 at 07.50.56.png

 

5. Use the "Exposure +" script.

6. Very quickly BEFORE any new "Exposure + 0,1" history step/state is recorded, change another setting that is not Exposure using the relative slider (do it roughly no need to be precise about the value)

 

Result: Only one History step will be created but actually 2 settings were changed.

 

Screenshot 2023-11-27 at 08.32.20.png

Screenshot 2023-11-27 at 08.32.30.png

  

LrC is grouping together into a single history state totally different settings after using API BUT they should be recorded separately.

 

In the script I didn't use LrDevelopController.setMultipleAdjustmentThreshold () so history grouping of different adjustments  should NOT have happened.

 

.

Votes

Translate

Translate

Report

Report
Adobe Employee ,
Nov 27, 2023 Nov 27, 2023

Copy link to clipboard

Copied

Logged and status updated

Rikk Flohr - Customer Advocacy: Adobe Photography Products
Status Investigating

Votes

Translate

Translate

Report

Report
Enthusiast ,
Feb 17, 2024 Feb 17, 2024

Copy link to clipboard

Copied

This bug is driving me insane.

I can't create many codes without incorrect history steps being created.

 

Here is a simple script to test the bug:

 

 

 

local LrDevelopController = import "LrDevelopController"

LrDevelopController.setTrackingDelay (10)
LrDevelopController.startTracking ("Exposure2012")
LrDevelopController.increment ("Exposure2012")

 

 

 

 

 

The instructions are clear:

I have set a delay so whenever the script is used it will take 10 seconds for a history step to be recored.

This gives plenty of time to change ANY other setting.

 

I have also instructed to track the setting that is being changed (Exposure) so as soon as any other setting is changed IN THEORY an history step should be created for each setting.

 

So in order to test do:

 

0. Unedited image 

1. Run the script

2. Change any other setting other than Exposure (e.g Clarity)

 

Result: as soon as we change a setting other than "Exposure2012" the other/different setting WILL NOT get a unique step in history and the two settings will be grouped into one history step under Exposure + 0.1

 

  • LrC is grouping changes to different settings in one step despite the fact that it should not.

 

ALSO the opposite issue is true.

 

  • LrC will create multiple separate history steps EVEN when they are performed in quick succession way under the default threshold to create separate steps.

 

Do this test.

 

1. Crop your image.

2. Change any of the Transform panel settings.

3. Run this script

 

 

local LrDevelopController = import "LrDevelopController"
local LrTasks = import "LrTasks"

LrTasks.startAsyncTask (function ()
    LrDevelopController.resetToDefault ("PerspectiveVertical")
    LrDevelopController.resetToDefault ("PerspectiveHorizontal")
    LrDevelopController.resetToDefault ("PerspectiveRotate")
    LrDevelopController.resetToDefault ("PerspectiveScale")
    LrDevelopController.resetToDefault ("PerspectiveAspect")
    LrDevelopController.resetToDefault ("PerspectiveX")
    LrDevelopController.resetToDefault ("PerspectiveY")
    LrDevelopController.resetToDefault ("PerspectiveUpright")
  
LrTasks.sleep (0.1)

LrDevelopController.resetCrop()
    end)

 

 

 

After running the script you will end up with 2 more separate history steps instead of one BUT all happened in less than the default 2 seconds threshold.

 

 

 

.

 

 

Votes

Translate

Translate

Report

Report
LEGEND ,
Feb 17, 2024 Feb 17, 2024

Copy link to clipboard

Copied

Idle speculation:

 

I wonder if the strange behavior of LrDevelopController's history-step tracking is related to the behavior of catalog:withWriteAccessDo() on Mac. Normally, each invocation of withWriteAccessDo() creates a new Undo step, but there is this caveat in the documentation:

 

"Note that if you use :withWriteAccessDo multiple times in succession without any intervening user interaction, the undo system in Mac OS will coalesce these into a single undoable event, which uses the name of the last one."

 

History and Undo are two separate facilities that must be closely related internally. I wonder if there's a bad interaction in the implementing code that causes LrDevelopController to behave badly.

 

You could test this hypothesis to see if the bad behavior you're observing on Mac also occurs on Windows.

 

 

Votes

Translate

Translate

Report

Report
Enthusiast ,
Feb 17, 2024 Feb 17, 2024

Copy link to clipboard

Copied

LATEST

@johnrellis I am no longer Windows and can't test anymore.

 

I have also tried to use LrDevelopController.setMultipleAdjustmentThreshold () to group steps together when I need it.

 

 

local LrDevelopController = import "LrDevelopController"
local LrTasks = import "LrTasks"

LrDevelopController.setMultipleAdjustmentThreshold (2)

LrTasks.startAsyncTask (function ()
    LrDevelopController.resetToDefault ("PerspectiveVertical")
    LrDevelopController.resetToDefault ("PerspectiveHorizontal")
    LrDevelopController.resetToDefault ("PerspectiveRotate")
    LrDevelopController.resetToDefault ("PerspectiveScale")
    LrDevelopController.resetToDefault ("PerspectiveAspect")
    LrDevelopController.resetToDefault ("PerspectiveX")
    LrDevelopController.resetToDefault ("PerspectiveY")
    LrDevelopController.resetToDefault ("PerspectiveUpright")
  
LrTasks.sleep (0.1)

LrDevelopController.resetCrop()
    end)

 

 

Doesn't seem tow work, LrC seems to creates separate steps anyway.

Votes

Translate

Translate

Report

Report