Commit Graph
1681 Commits
Author SHA1 Message Date
Denis Gomes f1b41ffeaa M7: find fonts that macOS font managers activate outside the font folders
Font managers such as RightFont, FontBase and Typeface keep fonts in their
own library folders and activate them through Core Text, without copying
them into /Library/Fonts or ~/Library/Fonts. Every other Mac app lists
these fonts; FigCraft walks only the font folders, so it didn't, and a
file using one of them drew in a fallback font.

On macOS the scan now also asks Core Text for the file of every available
font and indexes the files that lie outside the walked folders. All three
scans (the first, the on-demand one and text.rescanFonts) share this, so a
font activated while the app runs is found by a rescan like a newly
installed one.

Core Text needs unsafe FFI, which the workspace forbids, so the query goes
through the safe wrappers of the core-text crate, pinned at =20.1.0. That
version builds on the core-foundation 0.9, core-graphics 0.23 and
foreign-types 0.5 the lockfile already has: core-text is the only new
package. The call sits inside catch_unwind, so anything unexpected from
Core Text leaves the scan with the font folders alone. Other platforms are
unchanged.

On a Mac with RightFont, 15 families from its library are now listed
(Geist, JetBrains Mono, Clash Display and others) that weren't before. A
full font listing went from 0.06 s to 0.20 s on that machine.

Tests: the filter that keeps files outside the font folders once, indexing
a font file found outside them, and (macOS only) that Core Text lists the
system's font files. cargo test --workspace, cargo clippy -p figcraft-text
--all-targets -D warnings and cargo fmt --check pass on macOS 15. CI
builds on Linux only, so the macOS path is checked locally.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 5699e7abe6)
2026-10-26 00:36:21 -04:00
BFlat 33061d92fc Merge pull request #1287 from watchakorn-18k/thai-ui-fonts-and-catalog
M10: Thai UI fonts and a Thai draft catalog
2026-10-26 11:31:01 +07:00
bflatastic 245a8cca0d #1287: the Thai code-connect hint names ArkUI too 2026-10-26 11:16:51 +07:00
bflatastic b6d7d0a893 Merge main into #1287
# Conflicts:
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n_tests.rs
#	docs/localization-parity.md
#	docs/translating.md
2026-10-26 11:14:49 +07:00
bflatastic 573b43d645 #1294: its font test names no PostScript name, a field #1021 added 2026-10-26 11:13:14 +07:00
bflatastic 5ee983ef63 Merge main into #1294
# Conflicts:
#	ROADMAP.md
#	docs/roadmap.md
2026-10-26 11:12:25 +07:00
BFlat 8e79ffc3d7 Merge pull request #1021 from sarsonj/feat/sketch-import
M6: .sketch import (Sketch 48 and newer)
2026-10-26 11:10:16 +07:00
BFlat d203f8fdcf Merge pull request #698 from Dubblbindong/firma/fix/plugin-permission-to-save-a-file-86
feat(plugin): add saveFile permission with host-owned save dialog
2026-10-26 10:55:11 +07:00
BFlat 3a641026ad Merge pull request #1202 from culiulemon/main
Vector editing, property copy/paste, dev-mode assets, ArkUI codegen and shape-builder fixes
2026-10-26 10:53:13 +07:00
bflatastic 27d1089847 Merge main into #1021
# Conflicts:
#	ROADMAP.md
#	docs/target-app-parity.md
2026-10-26 10:43:34 +07:00
BFlat b107ddf882 Merge pull request #990 from midasdf/jp/kinsoku-jis
M4: CJK kinsoku completed to JIS X 4051
2026-10-26 10:41:08 +07:00
BFlat bcde334043 Merge pull request #1314 from denisg0mes/keep-images-past-budget
M7: don't save over a file whose images past the budget weren't loaded
2026-10-26 10:41:03 +07:00
bflatastic 1b946a247f Merge main into #698
# Conflicts:
#	README.md
#	crates/ui-egui/locales/fr.toml
#	crates/ui-egui/locales/sv.toml
2026-10-26 10:37:14 +07:00
bflatastic 5bed282751 #1202: the Italian and Vietnamese code-connect hints name ArkUI too 2026-10-26 10:36:00 +07:00
bflatastic f0385ef089 Merge main into #1202 2026-10-26 10:34:05 +07:00
bflatastic 8ffc5e57e8 #1021: the Vietnamese drop hint names .sketch too 2026-10-26 10:33:06 +07:00
bflatastic 76b5c8da6b Merge main into #1021 2026-10-26 10:31:59 +07:00
BFlat 9e993c6a77 Merge pull request #1026 from sonth87/i18n-vi
i18n: add Vietnamese (vi) interface localization
2026-10-26 10:31:47 +07:00
bflatastic 7177f1c042 Merge main into #1021
# Conflicts:
#	ROADMAP.md
#	docs/roadmap.md
2026-10-26 10:29:24 +07:00
BFlat 4b33cc17cb Merge pull request #1299 from mojtabajafarzadeh/fix/share-key-and-large-file-publish
ui: server key field in the Share popover (plus a longer publish reply timeout)
2026-10-26 10:27:36 +07:00
BFlat 660140ddc1 Merge pull request #984 from kler/swedish-ui-2026-10-19
i18n(sv): translate 38 new strings, use the agreed terms in 93
2026-10-26 10:25:56 +07:00
BFlat f93cdc769e Merge pull request #1340 from Silvertree2010/fix/1331-bug-report-figcraft-a-failed-bat
Name the failing step in batch command errors
2026-10-26 10:25:50 +07:00
BFlat 8b470eceaa Merge pull request #1275 from Ridzzz0Alam/fix/1062-render-bounds-depth
fix: Issue (#1062) render bounds stop at the depth the renderer draws.
2026-10-26 10:25:45 +07:00
BFlat f229d91ff2 Merge pull request #1243 from SusieeTheLinuxUser/fix/1239-wayland-clipboard
UI: Route text clipboard writes through egui (#1239)
2026-10-26 10:25:41 +07:00
bflatastic f291f89fbd Merge main into #990
# Conflicts:
#	ROADMAP.md
2026-10-26 10:24:45 +07:00
bflatastic 02f15fa483 #1021: the Italian drop hint names .sketch too 2026-10-26 10:23:48 +07:00
BFlat f93deb965b Merge pull request #661 from AganzeFelicite/fix/adobe-fonts-macos-298
M7: find fonts activated through Adobe Fonts on macOS (#298)
2026-10-26 10:23:17 +07:00
bflatastic 6c4bb00c9e Merge main into #1021
# Conflicts:
#	crates/text/src/fontdb_tests.rs
2026-10-26 10:20:43 +07:00
BFlat e03ebccece Merge pull request #1209 from aryann2611/mobile-layout
M6: mobile layout (phones and portrait tablets)
2026-10-26 10:20:07 +07:00
BFlat 9df8075aeb Merge pull request #1019 from muamerETS/fix/988-toolbar-flyout-carets
M7: toolbar flyout carets get a wider target clear of their tool (#988)
2026-10-26 10:19:53 +07:00
bflatastic d0a165efaa Merge main into #1026
# Conflicts:
#	docs/translating.md
2026-10-26 10:15:28 +07:00
BFlat 3a845b9717 Merge pull request #703 from timrrrr/codex/cmd-resize-image-crop
M1: crop image fills on Command/Ctrl resize
2026-10-26 10:15:04 +07:00
BFlat 8a89d5c20e Merge pull request #607 from MMexicann/fix/outline-stroke-rings
M4: preserve stroke rings when outlining shapes
2026-10-26 10:14:58 +07:00
BFlat 5eefcfaaf6 Merge pull request #623 from ahmedhosnypro/fix/system-theme-linux
Fix the system theme mode always drawing light on Linux and the BSDs
2026-10-26 10:14:53 +07:00
BFlat 6713b0eae3 Merge pull request #921 from YarilaFox/fix/paste-image-into-selected-shape
M7: paste images into selected shapes
2026-10-26 10:14:48 +07:00
BFlat 3a9fed2c6a Merge pull request #681 from leandrodslv/i18n/fr-native-review
i18n(fr): translate the missing strings and review the draft catalog
2026-10-26 10:14:43 +07:00
BFlat 0e7cffb5e7 Merge pull request #1217 from Salah1St/feat/default-font
M7: FIGCRAFT_DEFAULT_FONT names the font new text starts in
2026-10-26 10:14:38 +07:00
BFlat 17596c6996 Merge pull request #1216 from Salah1St/fix/thai-ui-fallback
M7: Noto Sans Thai as a UI fallback when the build embeds it
2026-10-26 10:14:33 +07:00
BFlat 44a21e9b91 Merge pull request #1224 from CosmoNetinfo/add-italian-language
Add Italian (it) interface language
2026-10-26 10:14:10 +07:00
bflatastic d9aa3eda87 Merge main into #1019
# Conflicts:
#	crates/ui-egui/src/toolbar.rs
2026-10-26 10:06:44 +07:00
bflatastic 1aed3d4915 Merge main into #990
# Conflicts:
#	ROADMAP.md
2026-10-26 10:03:33 +07:00
bflatastic 7c25399e4a Merge main into #661
# Conflicts:
#	ROADMAP.md
2026-10-26 10:03:15 +07:00
bflatastic b6c582396b #1287: drop the "Contents only" key main renamed 2026-10-26 10:01:26 +07:00
bflatastic 99435b72d7 Merge main into #1287
# Conflicts:
#	docs/translating.md
2026-10-26 10:01:26 +07:00
bflatastic 454ec26c11 #1299: the server key field's id uses egui 0.37's Id::unique 2026-10-26 09:41:10 +07:00
watchakorn-18kandClaude Sonnet 5.5 c7669d9d6d M10: cover Thai in the no-plural-forms test
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015wxxFg3gana4zaUKnyirTC
2026-10-26 09:40:43 +07:00
bflatastic 3b56f18e8e Merge main into #1202
# Conflicts:
#	crates/engine/src/codegen.rs
#	docs/mcp.md
2026-10-26 09:21:24 +07:00
bflatastic eb16585ec2 Merge main into #698 2026-10-26 09:20:18 +07:00
bflatastic 27f3bf6730 Merge main into #703 2026-10-26 09:20:12 +07:00
bflatastic c6d43e7903 Merge main into #607 2026-10-26 09:20:09 +07:00