1470 Commits
Author SHA1 Message Date
FredApps f704f481d5 Merge remote-tracking branch 'origin/main' into pr1654
# Conflicts:
#	ROADMAP.md
2026-11-02 18:25:00 +01:00
aiongg cc3c70d4be Windows: keep the custom title bar window borderless (#2139)
winit 0.30 gives an undecorated window WS_CAPTION and WS_BORDER; on some systems the compositor
reserves that frame, so the content is drawn offset (black bars at the top and left) while the
pointer keeps the client coordinates. A per-frame guard strips the styles again after every
winit flag change and keeps a maximized window clear of the taskbar. Fixes #1295.
2026-11-01 20:39:44 -05:00
Brandon Thomas a288a87bf6 Merge pull request #1018 from kler/swedish-ui
i18n: Swedish (sv) interface translation
2026-11-01 14:54:59 -05:00
Brandon Thomas 1b02e5427f Merge remote-tracking branch 'origin/main' into land-2109 2026-11-01 14:50:36 -05:00
Brandon Thomas 185412cdf9 Merge remote-tracking branch 'origin/main' into land-1018b
# Conflicts:
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/tests.rs
#	crates/ui-egui/src/menus/ui_commands.rs
#	docs/localization-parity.md
2026-11-01 14:50:19 -05:00
Brandon Thomas 78a108707c Merge pull request #1223 from macrobi/codex/hungarian-localization
Add initial Hungarian (hu) interface localization
2026-11-01 14:49:43 -05:00
Tom MainandOpenAI Codex bddef171cd #2108: preserve full filenames at the browser import boundary
Pass the original filename to file.openBytes so the engine removes one native extension. Cover Open and Drop, repeated suffixes, Unicode, bare and missing extensions, and IDML through the import inbox. Keep the full filename in import warnings.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
2026-11-01 14:30:23 -05:00
Tom MainandClaude Opus 5.5 472869598f font.list: a face without an OS/2 table reports a null fsType
A font with no readable OS/2 table doesn't say what its licence allows,
and reporting fsType 0 made it look installable. FontFace::fs_type() now
returns None for it, and font.list reports fsType and the five flags as
null. restricted_licence() and bitmap_only() still treat it as
unrestricted, so export behaviour doesn't change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ApvpyStzzHbKyDBNxpzn2Y
2026-11-01 13:31:06 -05:00
makesomethingshit 20925111eb #1620: Limit inline margins to the selected parent page 2026-11-02 00:05:23 +09:00
Patrik LermonandClaude Opus 5.5 100186def8 Swedish interface translation (sv)
Adds Swedish (Svenska) as an interface language: 1850 strings, written from the English source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 14:43:13 +01:00
makesomethingshit 90bbec39d1 #1620: Restore parent margins and pre-canvas page defaults 2026-11-01 19:44:44 +09:00
macadminHU 218c71af5c HU1: summarize Hungarian progress in one entry
Removed outdated Hungarian localization entries and integrated new ones while retaining existing tests and assertions.
2026-11-01 11:28:37 +01:00
makesomethingshit 5c364f9897 #1620: Port parent resizing to current layout modules 2026-11-01 15:18:55 +09:00
macadminHU 3f85c6fb78 Merge branch 'main' into codex/hungarian-localization 2026-10-31 19:41:36 +01:00
Tom MainandClaude Opus 5.5 f0c86e77e0 file.openBytes: title a .designcraft file without its extension
file.openBytes used the name it was given as the document's title as is. The
IDML path strips .idml/.indd/.indt, but a native document opened as
"Brochure.designcraft" kept the extension, and everything that adds it back
doubled it: Save in the browser downloaded Brochure.designcraft.designcraft,
Save As suggested that name, and the File Name variable showed it. The app's
own drop and open paths strip the extension before calling, so only hosts and
scripts that pass a file name hit it.

The title now drops one trailing .designcraft (any case). Other names are
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ApvpyStzzHbKyDBNxpzn2Y
2026-10-31 11:33:13 -04:00
Tom MainandClaude Opus 5.5 1d9e577e36 font.list: report each face's fsType embedding bits
font.list now gives, for the face that sets the text, its raw OS/2 fsType
and what the bits mean: restrictedLicence, bitmapOnly, noSubsetting,
editable and previewPrint (null when the face is missing). A host that
makes print PDFs can then refuse a face whose licence doesn't allow the
export, including system fonts and the bundled fonts, without reading the
font files itself. PDF export subsets every font, so a caller needs
noSubsetting as well as the restricted and bitmap-only bits.

FontFace gains fs_type(); restricted_licence() and bitmap_only() read it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ApvpyStzzHbKyDBNxpzn2Y
2026-10-31 11:23:21 -04:00
Dylan M. Taylor ea214dd44d Merge pull request #2070 from aiongg/docs-tidy
docs: tidy agent, contributor and asset docs
2026-10-31 01:06:18 -04:00
Brandon Thomas 99f90cbe2b Merge storytold/main into PR #2052 2026-10-31 01:02:00 -04:00
Brandon Thomas 74b9944ba3 Merge storytold/main into PR #1239 2026-10-31 01:01:49 -04:00
Brandon Thomas 06a5199e13 Merge storytold/main into PR #2057 2026-10-31 01:01:38 -04:00
Brandon Thomas 400e96c200 Merge storytold/main into PR #2052
# Conflicts:
#	crates/ui-egui/src/dialogs/tests.rs
2026-10-31 01:00:57 -04:00
Brandon Thomas faa2bf5089 Merge storytold/main into PR #1239
# Conflicts:
#	crates/doc/src/xref.rs
2026-10-31 01:00:56 -04:00
Brandon Thomas 8ff43f55fc Merge storytold/main into PR #2057 2026-10-31 01:00:55 -04:00
Brandon Thomas 4479555a52 Merge storytold/main into PR #1232 2026-10-31 01:00:54 -04:00
Brandon Thomas adee832ad1 Merge pull request #1975 from VoiceLessQ/fix/1586-image-decode-cap
Images: refuse a raster that would decode past 1 GiB of RGBA (fixes #1586)
2026-10-31 01:00:26 -04:00
aiongg 609c19bc54 docs: tidy wording 2026-10-31 04:25:32 +00:00
aiongg 8fc2edd51e docs: tidy agent, contributor and asset docs 2026-10-31 04:15:25 +00:00
texjer 06d29fe3a6 Parents: single-sided pages in a spread show the parent page in their place 2026-10-31 00:04:41 -04:00
aiongg c1ac3c03c8 Integration: #1566 progress-log line names French and Italian and Gap 13 2026-10-31 00:35:49 +00:00
aiongg 93b44a3fcf Integration: ROADMAP progress-log order for the anchor point lines 2026-10-31 00:13:40 +00:00
aiongg 4b29760ffd Merge track 6
Conflicts: dialogs.rs dialog widths (both kept); i18n/*.rs adjacent rows (both kept).
2026-10-30 23:57:22 +00:00
aiongg 50a66c3ca0 Merge track 5
Conflicts: i18n/*.rs adjacent rows (both kept).
2026-10-30 23:57:14 +00:00
aiongg 0979d0b722 Merge track 4 (pages, tables)
Conflicts: dialogs/tests.rs and i18n/*.rs: adjacent additions, both kept.
2026-10-30 23:57:01 +00:00
aiongg aae929eb97 Merge track 3 2026-10-30 23:56:48 +00:00
aiongg 9806f66fed Merge track 2 (Direct Selection stack)
Conflicts: panels/properties.rs imports (union); i18n/*.rs adjacent rows (both kept).
2026-10-30 23:56:47 +00:00
aiongg 664740f0af Integration: drop duplicate #892 progress line 2026-10-30 23:36:13 +00:00
aiongg ea5df59808 Integration: ROADMAP lines for #1249, #1255, #1514, #1515 2026-10-30 23:29:17 +00:00
aiongg 46aaa5aed7 Merge PR #1515: Package dialog PDF options refactor
crates/ui-egui/src/dialogs.rs: kept the Enter-stays-local fix
crates/ui-egui/src/package_dialog.rs: kept the summary wording and the fix; took the PR's pdf option value
crates/ui-egui/src/i18n/*.rs: kept the reworded keys and the PR's PDF Preset rows
Also (the PR's own CI failure): package.rs calls check_pdf_options and pdf_report on wasm, so those two re-exports are no longer wasm-gated (only pdf_export is).
2026-10-30 23:29:02 +00:00
aiongg 1fb973c3ad Merge PR #1514: Package dialog
crates/ui-egui/src/dialogs.rs: kept main's Insert Pages dialog and the PR's MULTILINE_FOCUS key
crates/ui-egui/src/i18n/*.rs: kept both sides' rows
2026-10-30 23:27:02 +00:00
aiongg 35697cb807 Merge PR #1255: TOC separator and style notation
crates/idml/src/tests.rs: kept the PR's TOC tests, dropped the duplicate copy from #1249
crates/engine/src/tests/idml.rs: main's createBookmarks plus the PR's right-indent separator
crates/ui-egui/src/dialogs.rs: main's labelled_by fields plus the PR's special-character menu
crates/ui-egui/src/i18n/*.rs: kept both added rows
2026-10-30 23:26:42 +00:00
aiongg f816c3b673 Integration: #1503 keep #1080's tests; roadmap log lines for #1080 and #1503 2026-10-30 23:26:21 +00:00
aiongg 450b3ae963 Merge PR #1679: Convert Text to Table and Table to Text
crates/engine/src/cmd/table.rs: both export lists.
crates/engine/src/cmd/table/structure.rs: #1676's Insert Table validation, #1679's MAX_CONVERTED_CELLS.
crates/ui-egui/src/dialogs.rs, dialogs/tests.rs: kept #1676's Insert Table dialog, Insert Pages and #1679's Convert dialogs and tests.
crates/ui-egui/src/menus/tables.rs, tests.rs, ui_commands.rs: flat Convert Cell items; Convert dialogs in the menu.
crates/ui-egui/src/i18n/*.rs: kept both sides' keys.
2026-10-30 23:25:57 +00:00
aiongg b86264b887 Merge PR #1676: Table menu
crates/engine/src/cmd/table.rs: kept both exports.
crates/engine/src/cmd/table/structure.rs: main's strict size validation with #1676's limit constants and table style.
crates/ui-egui/src/dialogs.rs: kept Insert Pages dialog and #1676's Insert Table dialog; dialog title and width from #1676.
crates/ui-egui/src/dialogs/tests.rs: kept both sides' tests.
2026-10-30 23:24:59 +00:00
aiongg 58819833a7 Merge PR #1287: section marker activation
crates/ui-egui/src/panels/pages.rs: kept #1287's marker activation and tests; spread label code from #892 (main).
2026-10-30 23:24:25 +00:00
aiongg 7bf66a540b Merge PR #892: Pages panel spread labels 2026-10-30 23:24:10 +00:00
aiongg 89ef0e3d81 Merge PR #1606: Paragraph Shading and Border pages
crates/ui-egui/src/panels/properties.rs, properties/object.rs: main's split module kept; preview_row and paint_corner_shape exported for the shading corner menus
crates/ui-egui/src/panels/properties/tests.rs: both sides' tests kept
crates/ui-egui/src/dialogs/tests.rs: main's tests kept; the border test uses the new corner labels; the shading layout test added
crates/ui-egui/src/i18n/*.rs: union of keys without duplicates
crates/ui-egui/src/dialogs.rs: the corner shape face uses corner_shape_button (no hard-coded colour in the dialog)
2026-10-30 23:17:40 +00:00
aiongg ad21d75988 Merge PR #1566: Hyphenation fr/it 2026-10-30 23:16:19 +00:00
aiongg f2389b791c Merge PR #1461: Text Frame Options
crates/ui-egui/src/dialogs.rs: both dialog tests kept
crates/ui-egui/src/i18n/*.rs: union of keys
docs/target-app-parity.md: main's change line plus the Text Frame Options entry
2026-10-30 23:16:09 +00:00
aiongg 5390d73ca0 Integration: #1416 drop duplicated roadmap line 2026-10-30 23:16:06 +00:00
aiongg 0e4cb1f294 Merge PR #1451: Effects blend modes for Drop Shadow, Inner Shadow and Outer Glow
crates/ui-egui/src/effects_dialog.rs: kept both the angle dial tests (main) and the blend mode test (PR); the stray 'The dialog's body.' doc line moved back onto show.
2026-10-30 23:16:03 +00:00