mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-11-02 22:41:47 -06:00
M14: the Preferences OK button stays in reach below the scrolling settings (#3557)
The settings scroll when the window is short, but OK was the last thing inside the scrolled content, so in a short window it was off screen until you scrolled to it, and the dialog was cut off partway through the theme cards. OK is now a row below the scroll area, outside it. The scroll area gets the height the window leaves (at least 60 pt, so OK stays on screen in the smallest window, 520 pt, at the largest interface size, 300%) and a scrollbar of its own instead of the floating one that lay over the right edge of the theme cards. A scroll area starts from the room its modal offers, and a modal offers more each frame for the first few, so with OK outside the scroll the dialog opened small and stretched by about 45 pt a frame for ten frames, and clicks in the first frames missed. The scroll area is asked for its full height from the start (min_scrolled_height, which egui applies only when the settings overflow it), so it opens at full size and does not stretch in a tall window. - test: OK and the title are on screen at window heights from 173 to 1100; OK closes the dialog and does not move while the settings scroll, and a far-down setting scrolls into view between the title and OK; the dialog does not grow after it opens; a very tall window has no blank gap above OK. Both the original layout and the stretching variants fail them. - parity: misc.preferences-dialog evidence and what is still missing.
This commit is contained in:
@@ -9792,8 +9792,8 @@ milestone = "M14"
|
||||
status = "partial"
|
||||
commands = ["app.preferences"]
|
||||
tools = ["js_enabled"]
|
||||
evidence = ["crates/ui-egui/tests/javascript.rs::document_scripts_and_preferences", "crates/ui-egui/tests/ui.rs::preferences_selects_default_workspace_for_next_open", "crates/ui-egui/tests/control.rs::control_default_workspace_and_session_override", "apps/pdfcraft/src/settings.rs::xdg_preferences_use_config_instead_of_data", "apps/pdfcraft/src/settings.rs::migration_preserves_preferences_and_other_data"]
|
||||
notes = "Preferences dialog with Interface language, Documents and view (persistent default workspace with session override), Identity, Fill & Sign (flatten on save, off by default) and JavaScript; other categories still live in their tools, and it isn't generated from a schema yet. XDG desktops store app.ron under XDG_CONFIG_HOME/pdfcraft or ~/.config/pdfcraft; existing data-folder preferences are copied without replacing configured preferences, with fallback on migration errors. Logs and recovery retain data locations. Portable/non-XDG locations are unchanged."
|
||||
evidence = ["crates/ui-egui/tests/javascript.rs::document_scripts_and_preferences", "crates/ui-egui/tests/ui.rs::preferences_selects_default_workspace_for_next_open", "crates/ui-egui/tests/control.rs::control_default_workspace_and_session_override", "apps/pdfcraft/src/settings.rs::xdg_preferences_use_config_instead_of_data", "apps/pdfcraft/src/settings.rs::migration_preserves_preferences_and_other_data", "crates/ui-egui/tests/preferences_layout.rs::ok_is_on_screen_without_scrolling_at_any_window_height", "crates/ui-egui/tests/preferences_layout.rs::ok_closes_the_dialog_in_a_short_window_and_the_settings_still_scroll"]
|
||||
notes = "Preferences dialog with Interface language, Documents and view (persistent default workspace with session override), Identity, Fill & Sign (flatten on save, off by default) and JavaScript; other categories still live in their tools, and it isn't generated from a schema yet. XDG desktops store app.ron under XDG_CONFIG_HOME/pdfcraft or ~/.config/pdfcraft; existing data-folder preferences are copied without replacing configured preferences, with fallback on migration errors. Logs and recovery retain data locations. Portable/non-XDG locations are unchanged. The settings scroll when the window is short (down to a 60 pt scroll area, so OK stays on screen in the smallest window at the largest interface size) and the OK row stays below them, in reach (#3557); the dialog still has no Cancel, and a window shorter than the dialog's title, one row and OK would still clip it."
|
||||
|
||||
[[feature]]
|
||||
id = "misc.prefs-general"
|
||||
|
||||
Reference in New Issue
Block a user