Skip to main content
aboswrt
Participant
April 26, 2026
Question

LrDialogs.presentFloatingDialog forced topmost on Windows starting in 15.2 (regression vs 15.1.1; macOS unaffected)

  • April 26, 2026
  • 3 replies
  • 19 views

Description of Issue:
Plugin floating dialogs created via LrDialogs.presentFloatingDialog on Windows starting in LR Classic 15.2 are forced to stay on top, overlapping content. After the dialog opens, clicking on Lightroom's main window (or any other application) no longer brings the clicked window visually to front — the floating dialog stays at the top of the z-order until explicitly dismissed. This even applies if Lightroom loses focus, for example if the user clicks the task bar to focus another application.

Clicks themselves DO pass through to LR's main window (folder navigation, filmstrip selection, etc. all work), so the API's documented intent of "interact with LR's main window" is technically satisfied. But the dialog no longer cooperates with z-order on focus events as it did through 15.1.1 — clicking LR used to bring LR visually forward and yield the dialog's z-order; in 15.2+ the dialog stays visually layered on top, occluding LR's main window even while LR is responding to clicks.

The Lightroom Classic SDK Programmers Guide documents floating dialogs (page 86, "Creating custom dialog boxes") as designed for cooperative window stacking:

"Floating (non-modal) dialogs can be created using the LrDialogs.presentFloatingDialog() function in a similar manner to that described for LrDialogs.presentModalDialog() above. For specifics, see the Lightroom Classic SDK API Reference. Use floating dialogs when it is desirable to let the user interact with Lightroom Classic's main window, as well as the dialog itself, while the dialog box is open."

This documentation text is identical in the 15.1 and 15.3 versions of the SDK Programmers Guide. The behavior changed across versions but the documentation did not, suggesting a Windows-specific regression introduced in the LR Classic 15.2.0 release.

Works as expected (clicking LR brings LR visually forward, dialog yields z-order):

- LR Classic 14.5.2 Windows

- LR Classic 15.1 Windows

- LR Classic 15.1.1 Windows (last good Windows release)

- LR Classic 14.x macOS

- LR Classic 15.3 macOS

Works unexpectedly (clicking LR does not bring LR visually forward; dialog stays on top until dismissed):

- LR Classic 15.2 Windows

- LR Classic 15.3 Windows

 

Lightroom Classic Version Number: Tested on LR Classic 15.3 Windows and 15.2 Windows. Does not reproduce on 15.1.1 or earlier on Windows, and does not reproduce on tested macOS versions including 15.3 macOS.

 

OS Version Number: Windows 11 23H2, build 22631.6199

Camera Model: N/A.

 

Step-by-step Reproduction Instructions:

1. Download the minimal repro plugin attached to this post (MinimalFloatingRepro.lrdevplugin), unzip if compressed.

2. In Lightroom Classic on Windows 15.2+: File → Plug-in Manager → Add. Select the MinimalFloatingRepro.lrdevplugin folder. Confirm it loads as "Minimal Floating Dialog Repro".

3. Library → Plug-in Extras → Open Floating Dialog (repro).

4. A floating dialog appears with explanatory text.

5. Click anywhere on Lightroom's main window — for example, click on a folder in the Folders panel.

6. Observe the z-order behavior of the floating dialog.

 

The Expected Result:

Lightroom's main window comes visually to front. The floating dialog yields z-order — visible but layered behind LR's main window. Clicking back on the dialog brings it to front. This matches the SDK Guide's documented design and the observed behavior in LR Classic 14.5.2, 15.1, 15.1.1 on the same Windows machine, and 15.3 on macOS.

 

The Actual Result:

Lightroom's main window responds to the click (folder selects, filmstrip updates, etc. — clicks do pass through), but the floating dialog stays visually at the top of the z-order. LR's main window does not come visually forward of the dialog. The dialog cannot be brought visually behind LR without explicitly closing the dialog.

Same behavior occurs against other applications: clicking on Notepad or File Explorer brings those applications input-focus, but the LR floating dialog stays visually layered above them.

This breaks UX patterns for plugins that show a long-running floating control panel alongside LR — the dialog visibly occludes whatever the user is trying to look at in LR, even though their clicks reach LR.

 

Additional notes:

- The repro plugin uses bare presentFloatingDialog config: only `title` and `contents` are set. None of the documented optional parameters (`blockTask`, `save_frame`, `onShow`, `windowWillClose`, `selectionChangeObserver`, `sourceChangeObserver`) are passed. This isolates the topmost behavior to the base API call — no specific config option triggers it.

- I was unable to find any change to the relevant SDK Guide page 86 text between 15.1 and 15.3

- The repro plugin source is two files (Info.lua and OpenFloating.lua), no external dependencies, no helper processes, no IPC. Plugin source is included in the attached .zip so the report is self-contained for reproduction.

- I have attached video screen recordings demonstrating the difference in behaviour between 15.1.1 and 15.2.

    3 replies

    johnrellis
    Legend
    April 26, 2026
    Legend
    April 26, 2026

    This got fixed in LrC 15.2! Now in LrC 15.3 they have messed up again.

    johnrellis
    Legend
    April 26, 2026

    It’s likely that this change in behavior is tied to the fix for this bug, released in 15.2: