Skip to content

Make settings modal stable and sync split scrolling by pixels - #196

Merged
alecdotdev merged 2 commits into
sftwrdotdev:masterfrom
daniel-grabowski:pr/settings-scroll-sync
Jul 13, 2026
Merged

Make settings modal stable and sync split scrolling by pixels#196
alecdotdev merged 2 commits into
sftwrdotdev:masterfrom
daniel-grabowski:pr/settings-scroll-sync

Conversation

@daniel-grabowski

Copy link
Copy Markdown
Contributor

Summary

  • make the settings window behave as a modal instead of closing on backdrop clicks
  • add pointer-driven dragging by the settings header and custom edge/corner resize handles
  • group application-toolbar and editor-toolbar settings into collapsed accordions with chevrons
  • verify that interactive button labels are translated for every supported language
  • replace preview-to-editor scroll sync source-line guessing with pixel segment positions, so font-size differences and frontmatter panel height are accounted for

Stacking

This is a follow-up to #195. It should be reviewed after #195 because it builds on the toolbar settings structure added there.

Testing

  • npm run test:settings-scroll
  • npm run check (0 errors, 0 warnings)
  • npm run build
  • cargo xwin check --target x86_64-pc-windows-msvc
  • git diff --cached --check

Notes

No Windows release artifacts or local adhoc-sdlc files are included.

HTML export now renders from the Markdown source, rewrites local Markdown links, embeds local images as data URLs, and includes frontmatter metadata as a static properties block.

Add a reload-from-disk action through the titlebar, native menu, and F5 with dirty-state protection. The editor formatting toolbar and the application titlebar toolbar can now be configured from settings, including visibility and order.

The export path asks whether to open the saved HTML file in the system default app. PDF export still delegates to the system print dialog because that path does not expose the saved file path.

fixes sftwrdotdev#154

fixes sftwrdotdev#163

fixes sftwrdotdev#185
Settings now behaves as a true modal: backdrop clicks no longer light-dismiss it, the header can drag the dialog, and custom edge and corner handles resize it without the native resize jitter.

Toolbar customization is grouped into collapsed accordions with chevrons, and the settings wiring test checks that translated interactive labels exist for every supported language.

Split-pane scroll sync now exchanges pixel segment positions instead of source-line guesses, so preview-to-editor sync stays aligned across different font sizes and frontmatter panel states.

refs sftwrdotdev#154
@daniel-grabowski
daniel-grabowski marked this pull request as ready for review July 7, 2026 13:47
@alecdotdev
alecdotdev merged commit aa7e290 into sftwrdotdev:master Jul 13, 2026
1 check passed
@daniel-grabowski
daniel-grabowski deleted the pr/settings-scroll-sync branch July 15, 2026 07:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants