Commit Graph
1002 Commits
Author SHA1 Message Date
Fridtjof MichelsandClaude Opus 5.5 3e3955bb30 LR-VIEW-SURVEY: ⌘/Ctrl-click on a survey tile takes the photo out of the survey
As in Lightroom Classic, a ⌘/Ctrl-click on a tile in Survey deselects that
photo (library.select, mode toggle), as the hover × does; a plain click still
only makes it active, and the last photo stays so the survey never empties.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 21:12:47 +01:00
Nathaniel Ledford a26512c39c Docs: the accessibility bus access is untested with Orca 2026-10-31 07:33:54 -04:00
Nathaniel Ledford e845b97d8d LR-BEHAV-ACCESS: the Flatpak may talk to the accessibility bus, so Orca can read LightCraft 2026-10-31 07:33:45 -04:00
aiongg e80c3e3e13 Merge upstream main into integration-r3 2026-10-31 05:09:34 +00:00
aiongg a9ac47cbce docs: tidy wording 2026-10-31 04:25:37 +00:00
aiongg a4dc70c07b Integration: sort modules, merge duplicated checklist and gap rows from the combined tracks 2026-10-31 02:42:54 +00:00
aiongg ee0a627536 Merge track r3-t10
# Conflicts:
#	crates/engine/src/cmd/masks.rs
#	crates/ui-egui/locales/de.json
#	crates/ui-egui/locales/es.json
#	crates/ui-egui/locales/fr.json
#	crates/ui-egui/locales/ja.json
#	crates/ui-egui/locales/ka.json
#	crates/ui-egui/locales/pt-br.json
#	crates/ui-egui/locales/ru.json
#	crates/ui-egui/locales/uk.json
#	crates/ui-egui/locales/zh-hant.json
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:31:38 +00:00
aiongg 56c842d8fe Merge track r3-t09
# Conflicts:
#	docs/parity-checklist.md
#	docs/raw-parity.md
#	docs/ui-parity.md
#	docs/whats-new.md
2026-10-31 02:31:25 +00:00
aiongg e05c4f7e7c Merge track r3-t08
# Conflicts:
#	crates/meta/README.md
#	crates/ui-egui/locales/cs.json
#	crates/ui-egui/locales/de.json
#	crates/ui-egui/locales/es.json
#	crates/ui-egui/locales/fi.json
#	crates/ui-egui/locales/fr.json
#	crates/ui-egui/locales/id-formats.json
#	crates/ui-egui/locales/id.json
#	crates/ui-egui/locales/it.json
#	crates/ui-egui/locales/ja.json
#	crates/ui-egui/locales/ka-formats.json
#	crates/ui-egui/locales/ka.json
#	crates/ui-egui/locales/pl.json
#	crates/ui-egui/locales/pt-br.json
#	crates/ui-egui/locales/ru.json
#	crates/ui-egui/locales/sv-formats.json
#	crates/ui-egui/locales/sv.json
#	crates/ui-egui/locales/uk.json
#	crates/ui-egui/locales/vi.json
#	crates/ui-egui/locales/zh-hans.json
#	crates/ui-egui/locales/zh-hant.json
#	crates/ui-egui/src/panels/grid.rs
#	crates/ui-egui/tests/it/main.rs
#	docs/gaps.md
#	docs/library-shortcuts.md
#	docs/parity-checklist.md
#	docs/raw-parity.md
#	docs/user/guides/export-photos.md
#	docs/whats-new.md
2026-10-31 02:31:16 +00:00
aiongg 1f111b5e80 Merge track r3-t07
# Conflicts:
#	crates/engine/src/tests/libops.rs
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:30:21 +00:00
aiongg 8415fd6a90 Merge track r3-t06
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:30:12 +00:00
aiongg 0fa59f8846 Merge track r3-t05
# Conflicts:
#	crates/ui-egui/locales/cs-formats.json
#	crates/ui-egui/locales/cs.json
#	crates/ui-egui/locales/de-formats.json
#	crates/ui-egui/locales/de.json
#	crates/ui-egui/locales/es-formats.json
#	crates/ui-egui/locales/es.json
#	crates/ui-egui/locales/fi-formats.json
#	crates/ui-egui/locales/fi.json
#	crates/ui-egui/locales/fr-formats.json
#	crates/ui-egui/locales/fr.json
#	crates/ui-egui/locales/id-formats.json
#	crates/ui-egui/locales/id.json
#	crates/ui-egui/locales/it-formats.json
#	crates/ui-egui/locales/it.json
#	crates/ui-egui/locales/ja-formats.json
#	crates/ui-egui/locales/ja.json
#	crates/ui-egui/locales/ka-formats.json
#	crates/ui-egui/locales/ka.json
#	crates/ui-egui/locales/pl-formats.json
#	crates/ui-egui/locales/pl.json
#	crates/ui-egui/locales/pt-br-formats.json
#	crates/ui-egui/locales/pt-br.json
#	crates/ui-egui/locales/ru-formats.json
#	crates/ui-egui/locales/ru.json
#	crates/ui-egui/locales/sv-formats.json
#	crates/ui-egui/locales/sv.json
#	crates/ui-egui/locales/uk-formats.json
#	crates/ui-egui/locales/uk.json
#	crates/ui-egui/locales/vi-formats.json
#	crates/ui-egui/locales/vi.json
#	crates/ui-egui/locales/zh-hans-formats.json
#	crates/ui-egui/locales/zh-hans.json
#	crates/ui-egui/locales/zh-hant-formats.json
#	crates/ui-egui/locales/zh-hant.json
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:30:12 +00:00
aiongg 5e56e9536b Merge track r3-t04
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:30:01 +00:00
aiongg 67b636329a Merge track r3-t03
# Conflicts:
#	crates/ui-egui/src/tests/drop_import.rs
#	crates/ui-egui/tests/it/main.rs
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:29:52 +00:00
aiongg 46982a5c4f Merge track r3-t02
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:29:22 +00:00
aiongg e235ac71e2 Merge PR #3375: LR-IMP-FORMATS: a Samsung panorama JPEG with its SEF trailer imports
docs/whats-new.md: the PR's 2026-10-30 section added above main's sections.
2026-10-31 02:11:48 +00:00
aiongg 9b5a339ac5 Merge PR #3325: LRC-LIB-FOLDERS: Move Folder To… asks for the destination without freezing the window
crates/ui-egui/src/panels/left/folders.rs: main's built-in-place guard around Rename and Move kept; the Move item is the PR's move_folder_item inside it.
docs/parity-checklist.md: the PR's edits to its rows applied to main's rows.
docs/whats-new.md: the PR's entry added under the 2026-10-29 heading.
2026-10-31 02:11:38 +00:00
aiongg d8f45ed5a5 Merge PR #3322: LRC-LIB-CATALOG-SWITCH: a library missing at launch is reported instead of being made anew with demo photos
docs/parity-checklist.md: the PR's edit to the LRC-LIB-CATALOG-SWITCH row applied to main's row.
docs/whats-new.md: the PR's 2026-10-29 section added above main's sections.
2026-10-31 02:11:23 +00:00
aiongg e619c977b9 Merge PR #3276: LRC-LIB-FOLDERS: the home folder and Local's built-in places can't be renamed or moved
docs/parity-checklist.md: header keeps main's newer date plus the PR's item; the PR's edit to the LRC-LIB-FOLDERS row applied to main's row; revision rows union, newest first.
docs/whats-new.md: the PR's 2026-10-28 section added above 2026-10-27.
2026-10-31 02:11:01 +00:00
aiongg 3af32798f3 Merge PR #2821: LR-META-LOCATION: reject malformed typed GPS coordinates
crates/engine/src/cmd/library.rs: kept main's split; the PR's parse_gps changes and tests are ported to crates/engine/src/cmd/library/gps.rs.
docs/gaps.md, docs/parity-checklist.md: both sides kept (header items, rows, LR-META-LOCATION note).
2026-10-31 02:10:49 +00:00
aiongg 5062acc601 Merge PR #2421: fix(windows): add opt-in DirectComposition workaround for VRR flicker
apps/lightcraft/src/main.rs: kept main's split; hunks ported (clear_color, compose_window, with_transparent); test moved to tests.rs
crates/ui-egui/src/panels/settings.rs: deleted on main; checkbox ported to dialogs/settings/performance.rs
crates/ui-egui/src/state.rs: compose_window field and default ported to state/settings.rs
crates/ui-egui/locales/*.json: main's file plus the new key
docs/gaps.md, docs/parity-checklist.md: main's header and rows plus the PR's additions; duplicated header line and blank lines dropped
2026-10-31 02:10:21 +00:00
aiongg bfb9572eb1 Merge PR #2529: LR-MAP-TRACKLOG: Decode XML character references in GPX
docs/gaps.md, docs/whats-new.md, docs/parity-checklist.md: both sides' header items, entries and rows kept.
2026-10-31 02:10:14 +00:00
aiongg 9d4de0518a Merge PR #2979: LRC-LIB-CATALOG-SWITCH: a library's catalog.snap or folder given at launch opens that library
docs/parity-checklist.md: header keeps main's newer date plus the PR's item; revision rows union.
2026-10-31 02:10:05 +00:00
aiongg f6b9c3ee8f Merge PR #3331: LR-VIEW-HISTOGRAM: the histogram's clipping buttons read in every theme
docs/parity-checklist.md: header from main with this PR's date and text; Histogram row gets this PR's clause; revision rows both kept
docs/whats-new.md: both entries, newest first
2026-10-31 02:09:58 +00:00
aiongg e8566e839a Merge PR #2952: LR-EDIT-COLOR-TEMP: a one-field white balance partial keeps the other field's look (#2910)
Conflicts: docs unioned
2026-10-31 02:09:50 +00:00
aiongg b28ef86773 Merge PR #2724: fix(codecs): validate JPEG ICC APP2 chunk sequences
Conflicts: docs/gaps.md header merged (newer date, both change lists), rows kept; other docs unioned
2026-10-31 02:09:46 +00:00
aiongg 5a7a1b2ad9 Merge PR #2964: LR-IMP-ADD-DIALOG: handle rename sequence exhaustion
crates/engine/src/import.rs, cmd/library.rs: main split these files; kept main's side here and ported the PR's hunks to import/job.rs, cmd/library/import.rs and cmd/library/specs.rs (module doc stays in import.rs).
docs: headers keep main's newer date plus the PR's item; the PR's row additions applied to main's rows; revision rows and What's New entries kept, one heading per date.
2026-10-31 02:09:36 +00:00
aiongg 42254ce585 Merge PR #2809: LR-CROP-AUTO: Auto straighten reads the vertical vanishing point and the horizon
docs/parity-checklist.md: LR-CROP-STRAIGHTEN row from main (moved test path); LR-CROP-AUTO row from the PR; header and revision rows both kept.
docs/whats-new.md: both entries kept.
2026-10-31 02:09:32 +00:00
aiongg d68af705a0 Merge PR #2981: Issue #2819: the histogram stays SDR when HDR is switched off
crates/ui-egui/src/panels/edit/histogram.rs: live_hdr_histogram added above main's histogram() (now in edit/histogram.rs, pub(crate))
docs/parity-checklist.md: main's Histogram row with this PR's HDR-off clause
2026-10-31 02:09:32 +00:00
aiongg dc946d9876 Merge PR #3265: LR-BEHAV-ACCESS: the grid's Thumbnail size reads as a slider
crates/ui-egui/tests/it/main.rs: all mod lines kept. docs: both sides kept; header keeps the newer date.
2026-10-31 02:09:27 +00:00
aiongg 8241145ba7 Merge PR #3332: LR-BEHAV-TITLEBAR: a dialog leaves the macOS title bar undimmed
Conflicts: docs unioned
2026-10-31 02:09:20 +00:00
aiongg f597811c3b Merge PR #3273: LR-BEHAV-ACCESS: panels and bars are named as landmarks and toolbars
Conflicts: docs unioned, locales/ru.json and sv.json keys unioned
2026-10-31 02:09:13 +00:00
aiongg 69eaf50db9 Merge PR #3262: LR-BEHAV-ACCESS: the photo in Detail is named with its file name
crates/ui-egui/tests/it/main.rs: all mod lines kept. docs: both sides kept; header keeps the newer date.
2026-10-31 02:09:11 +00:00
aiongg ac36428e6d Merge PR #3384: LR-MASK-OBJECTS: a SAM 3 checkpoint in Meta's original format is named as such, not as an unsupported dtype (#3378)
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:09:05 +00:00
aiongg 538a77e841 Merge PR #3260: LR-BEHAV-ACCESS: a dialog is exposed to screen readers as a dialog, not a group
Conflicts: docs unioned
2026-10-31 02:09:02 +00:00
aiongg e0d393c732 Merge PR #2777: LR-EDIT-OPTICS-PROFILE: Fujifilm X-S20 embedded lens corrections and spectral matrices 2026-10-31 02:08:57 +00:00
aiongg 24b817fc26 Merge PR #3253: LR-BEHAV-ACCESS: an icon button's accessible name is its label, with the shortcut as its description
Conflicts: ui-egui/tests/it/accessibility.rs (both tests kept), docs unioned
2026-10-31 02:08:57 +00:00
aiongg 13b2534f80 Merge PR #3221: LR-VIEW-PHOTOGRID: the grid's empty view names Import Photos' shortcut as the keymap has it
docs/whats-new.md, docs/parity-checklist.md: both sides' entries; header keeps the newer date.
2026-10-31 02:08:54 +00:00
aiongg 9f587f69d8 Merge PR #3220: MENU-HELP-HELP: on macOS the Help menu is registered with AppKit after the menu bar is installed
Conflicts: apps/lightcraft/src/native_menu.rs (both added lines kept: RowIds and help_menu), docs unioned
2026-10-31 02:08:47 +00:00
aiongg b10a67a1d6 Merge PR #2322: LR-CROP-RECT: a free crop corner on a straightened photo grows both sides (#2308)
crates/geom/src/crop_drag.rs: kept main's 'mod tests;'; the PR's four new tests ported to crop_drag/tests.rs.
2026-10-31 02:08:45 +00:00
aiongg 2b30e3d6e6 Merge PR #2954: LR-IMP-ADD-DIALOG: an import checks its probes and looks up sidecars several at a time
docs/parity-checklist.md: header keeps main's date plus the PR's item; the LR-IMP-ADD-DIALOG row keeps main's text and gets the PR's sentence; revision rows union.
docs/whats-new.md: both entries kept.
2026-10-31 02:08:40 +00:00
aiongg 9b748af445 Merge PR #3379: LR-MASK-COLORRANGE: a colour-range mask keeps at most 64 samples however it is loaded (#2556)
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:08:39 +00:00
aiongg d83f0ee617 Merge PR #2741: LR-VIEW-HISTOGRAM: the histogram stays in view while the Edit panel's sliders scroll (#2679)
docs/parity-checklist.md: header line from main (newer date)
2026-10-31 02:08:35 +00:00
aiongg e2d750ca0e Merge PR #3212: LR-BEHAV-ACCESS: a date header in the photo grid is named with the text it shows
crates/ui-egui/tests/it/main.rs: both mod lines kept. docs/whats-new.md, docs/parity-checklist.md: both sides' entries, header and LR-BEHAV-ACCESS row combined.
2026-10-31 02:08:33 +00:00
aiongg 2933f667fd Merge PR #3214: LR-BEHAV-ACCESS: a slider's value field is named "<slider> value" and describes how to use it
Conflicts: docs/whats-new.md and docs/parity-checklist.md (both sides unioned)
2026-10-31 02:08:26 +00:00
aiongg 035d4d5dcb Merge PR #2977: LR-META-EXIF-FULL: reject malformed EXIF clocks
docs/gaps.md, docs/parity-checklist.md, docs/whats-new.md: both sides kept; the PR's sentences added to main's rows and entries.
docs/xmp-interop.md: capture-time paragraph combines both sides.
The PR's test file crates/engine/src/tests_import.rs landed in crates/engine/src/tests/import.rs (moved on main).
2026-10-31 02:08:25 +00:00
aiongg 856b3c46fc Merge PR #3323: LR-MASK-PINS: Object and Describe masks show a pin that selects them (#3049)
# Conflicts:
#	docs/whats-new.md
2026-10-31 02:08:24 +00:00
aiongg fc5278641b Merge PR #2858: LRC-LIB-LIBFOLDERS: Don't ask again when moving photos is kept only when the move started
docs/parity-checklist.md: header keeps main's newer date plus the PR's item; revision rows are the union.
2026-10-31 02:08:19 +00:00
aiongg 1b32dab094 Merge PR #999: Alt/Option-drag previews for clipping and sharpening (#937)
Conflicts resolved:
- crates/engine/src/media.rs: main split it; the render and display-profile hunks are ported into media/render.rs
- crates/ui-egui/src/lib.rs, panels/detail.rs: main split them; alt_held is set in app/frame.rs, view_overlay and overlay_supports_window ported (panels/detail/window.rs)
- crates/ui-egui/src/tests_alt_preview.rs moved to tests/alt_preview.rs
- crates/pipeline/src/finish.rs, local.rs: main's code kept, sharpen_mask_weight and texture_sigma applied to it
- docs: both sides kept; summary counts from main (regenerated later)
2026-10-31 02:08:19 +00:00
aiongg 9577b6fabc Merge PR #2825: LR-LIB-ALBUM: album commands skip photos the library lacks and record nothing when they add nothing
crates/engine/src/tests.rs: both test modules. docs: union.
2026-10-31 02:08:18 +00:00