Commit Graph
7143 Commits
Author SHA1 Message Date
BFlat 5a9a14fdbd Merge pull request #4975 from VladimirCeric/serbian-croatian
Languages: Serbian (Cyrillic, Latin) and Croatian, with their quote marks
2026-11-01 07:57:43 +07:00
BFlat 6ca5656c31 Merge pull request #5007 from mockydevs/feat/symbols-select-unused-4918
Fix #4918: Symbols panel Select All Unused
2026-11-01 07:57:26 +07:00
bflatastic 7d0c0b589e docs: type-parity keeps one status line and one revision row for the Serbian and Croatian languages after the rebase 2026-11-01 07:38:03 +07:00
VladimirCericandClaude Opus 5.5 13dd4f9086 Languages: keep other apps' names out of the comments and docs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011wCJ9DkszhZKxYL3LgcSfZ
2026-11-01 07:38:03 +07:00
VladimirCericandClaude Opus 5.5 d440b6d32b Languages: cite the quote sources (Pravopis ISBN, CLDR links)
From the CodeRabbit review: the Serbian and Croatian quote marks name
their sources with the Pravopis's ISBN and links to CLDR's sr and hr
data, in the code and in docs/type-parity.md; the quotes test says what
it checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011wCJ9DkszhZKxYL3LgcSfZ
2026-11-01 07:38:03 +07:00
VladimirCericandClaude Opus 5.5 c492d524c5 Languages: Serbian (Cyrillic, Latin) and Croatian, with their quote marks
Document Setup and Character › Language list Serbian: Cyrillic (sr-Cyrl),
Serbian: Latin (sr-Latn) and Croatian (hr). Text tagged Serbian is shaped
in it (#4940, #4959), so fonts draw their Serbian forms, the italic б,
г, д, п, т. Serbian quotes follow the Pravopis (Matica srpska 2010,
т. 168) and CLDR: „…” and ’…’; Croatian per CLDR: „…“ and ‚…‘.
Illustrator lists Croatian but not Serbian.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011wCJ9DkszhZKxYL3LgcSfZ
2026-11-01 07:38:03 +07:00
bflatastic 3d8677a71a Symbols: catalog rows for deleting several symbols and for no unused symbols 2026-11-01 07:38:02 +07:00
Don Omondi 961694cba6 Fix #4918: delete nested picks safely, keep picks per document
symbol.delete {names} expands every instance of the named symbols,
round by round, before it removes any definition, so a symbol and the
one placed inside it delete alike in either order. The Symbols panel's
picks belong to the document they were made in, and a single picked
symbol is deleted only while symbol.unused still lists it.
2026-11-01 07:38:01 +07:00
Don Omondi 5b639169cd Fix #4918: Symbols panel Select All Unused
symbol.unused lists the symbols nothing places: instances in the art
(opacity masks included), graph designs, pattern tiles and brush art
count, and so do instances in a used symbol's art. The Symbols panel
menu's Select All Unused shows them selected, and Delete Symbol asks
once and deletes those still unused in one undo step
(symbol.delete {names}).
2026-11-01 07:38:01 +07:00
BFlat 1c0ca5a26b Merge pull request #5002 from dotCooCoo/fix/status-messages-plural-counts
i18n: link, font and export status messages use real plural forms instead of "(s)"
2026-11-01 07:37:27 +07:00
BFlat 0335900ea7 Merge pull request #5006 from dotCooCoo/feat/opentype-panel-alternates
OpenType: the panel turns Stylistic and Titling Alternates on and off, and offers Proportional Lining figures
2026-11-01 07:37:10 +07:00
BFlat c460be8505 Merge pull request #5008 from dotCooCoo/feat/place-word-doc
Place: Word 97-2003 .doc files place as area type with their formatting
2026-11-01 07:36:58 +07:00
BFlat a42fc050ca Merge pull request #5009 from storytold/feat/brush-tip-cursor-4977
Fix #4977: Blob Brush and Eraser show their tip's outline at the pointer
2026-11-01 07:36:41 +07:00
dotCooCoo 1e14719c16 i18n: French rows keep the no-break space before punctuation 2026-11-01 07:16:32 +07:00
dotCooCoo 7410b7233e i18n: link, font and export status messages use real plural forms instead of "(s)"
The status bar's messages for relinked, replaced, updated and embedded
images, broken links, linked files that can't be read or changed on
disk, images that can't be decoded, added and unavailable fonts, copied
CSS, downloads and exports with notes read "1 image(s)" and similar.
They now say "1 image" and "2 images", and every catalog translates
both through @msgplural rows in the language's plural forms, as the
Package status does.

- i18n::msg_n writes such a message in English and fills its
  placeholders in one pass; the status bar's translation fills them in
  one pass too, so a path or name that holds "{n}" text stays whole.
- The old "(s)" @msg rows are replaced in all 26 catalogs, with new
  rows for Replaced and Break Link.
- Sites: dialogs/missing_links.rs, dialogs/missing_fonts.rs,
  app/links.rs, panels/css_properties.rs, dialogs/find_links.rs,
  panels/links.rs, place.rs, canvas.rs, io/export.rs and
  dialogs/save_for_web.rs.
2026-11-01 07:16:32 +07:00
dotCooCoo 13628274b7 OpenType: the panel turns Stylistic and Titling Alternates on and off, and offers Proportional Lining figures
The OpenType panel gains Stylistic Alternates (salt) and Titling Alternates
(titl) checkboxes after Swash. The Figure menu lists Default Figure, Tabular
Lining, Proportional Lining, Proportional Oldstyle and Tabular Oldstyle.
Proportional Lining sets pnum and lnum and turns tnum and onum off; Tabular
Lining keeps lnum, Proportional Oldstyle keeps pnum, and Default Figure and
Tabular Oldstyle turn both off. Every catalog has rows for the three new
labels.
2026-11-01 07:16:31 +07:00
dotCooCoo 8805fa8214 Place: Word .doc text with a broken surrogate pair is refused, and fields without a result warn
A 16-bit piece holding half of a UTF-16 surrogate pair was placed with
U+FFFD in its place; the document is now refused. A pair split between
two pieces is decoded as one character.

A field with no result (no separator, never ended, or nested past 64)
is left out with its own warning, and the warning about fields placed
as their results is given only for fields that have one.
2026-11-01 07:16:30 +07:00
bflatastic 859b3732c1 Fix #4977: Blob Brush and Eraser show their tip's outline at the pointer 2026-11-01 07:16:29 +07:00
dotCooCoo 5fdccdf602 Place: Word 97-2003 .doc files place as area type with their formatting
File > Place reads a Word 97-2003 document (a compound file named .doc,
or one that holds a WordDocument stream) and sets its main text as area
type, as it does for .rtf and .docx files. The text comes from the
piece table, in 16-bit Unicode or compressed 8-bit pieces. Formatting
is resolved from the style sheet's default font, the paragraph style,
the character style and the direct character and paragraph properties,
and keeps the same properties the .docx reader maps.

Table cells are separated by tabs and each row is a paragraph, and a
field places as its result. Hidden and deleted text, pictures, headers,
footers, notes, comments and text boxes are left out, and the reply's
warnings name each kind of content left out or changed once. Word 6.0
and Word 95 documents, encrypted documents and documents last saved
with fast save are refused, and so are structures that lie outside
their streams.

The compound file is read with the cfb crate (MIT), which adds one
package to Cargo.lock.
2026-11-01 07:16:29 +07:00
BFlat 433ddb593d Merge pull request #4997 from dotCooCoo/feat/tabs-ctrl-drag-moves-following
Tabs: Ctrl-dragging a tab stop moves all the stops together
2026-11-01 06:48:58 +07:00
dotCooCoo 4a804b96bd Tabs: Escape pressed as a stop is released cancels the drag
The stop drop now checks Escape the way the indent-marker drop does, so Escape in the release frame leaves the stops as they were after a plain drag, a Ctrl-drag (Command on macOS) of all the stops, or a drag off the ruler.
2026-11-01 06:45:25 +07:00
dotCooCoo 2f8ff1a224 Tabs: Ctrl-dragging a tab stop moves all the stops together
In the Tabs panel, a stop dragged on the ruler with Ctrl held (Command on
macOS) moves every stop by the same distance, set in one text.tabs.set and
one undo step. The stops keep their order, alignment, leaders and Align On,
and the ruler draws them at their new positions during the drag.

Ctrl is read when the drag starts, as the Left Indent marker reads it. A drag
that would take the leftmost stop below 0 leaves it at 0, and one that would
take the rightmost past 100,000 pt leaves it at 100,000 pt, keeping the
spacing of the others. A Ctrl-drag released off the ruler deletes only the
dragged stop, as a plain drag does. A plain drag still moves one stop.
2026-11-01 06:45:25 +07:00
BFlat b4d4d6a419 Merge pull request #4996 from RicSchonfelder/i18n/pt-br-extra-rows
i18n(pt-br): translate the rows the sibling catalogs cover
2026-11-01 06:45:00 +07:00
BFlat 6e5b8b130b Merge pull request #5000 from mockydevs/fix/blend-spine-layers-4820
Fix #4820: the Layers panel lists a blend's spine
2026-11-01 06:44:45 +07:00
bflatastic 4211424855 i18n(pt-br): the Language menu shows English in its own name 2026-11-01 06:33:48 +07:00
bflatastic dac4dc15ad i18n(pt-br): leave the product, workspace and perspective preset names in English, as the menu-complete catalogs do 2026-11-01 06:27:24 +07:00
RicSchonfelder 9f64a13a8a i18n(pt-br): translate the rows the sibling catalogs cover
The Brazilian Portuguese catalog was marked complete under the tests, but 174 strings that the
German, French, Italian and Spanish catalogs already translate still fell back to English: smart
object and smart-filter editors, print presets and Japanese paper names, dimension lines and text,
the gutter, workspace names, swatch names and canvas messages.

Rows follow the catalog's vocabulary (dimension = cota, swatch = amostra, artboard = Mesa de
Trabalho, gutter = medianiz, line weight = espessura da linha) and are appended after the existing
entries; placeholders, ellipses and colons are unchanged. The parity doc records the new count
(6,126) with the commit it was measured on, following the rule in "How it is measured".
2026-11-01 06:27:24 +07:00
Don Omondi a425a89349 Fix #4820: the Layers panel lists a blend's spine
An open blend shows a <Spine> row below its key objects, where Release
leaves the spine. A click selects the blend (Shift/Cmd toggles it), so
Direct Selection edits the spine on the canvas; a locked blend's row
selects nothing, and the row is left out while searching or filtering.
2026-11-01 06:27:23 +07:00
BFlat ab90f50cbd Merge pull request #4994 from dotCooCoo/fix/eps-gradient-keeps-spot-ink
EPS export: gradients of spot colors keep their spot inks
2026-11-01 06:26:38 +07:00
BFlat a19cd5135e Merge pull request #5005 from storytold/feat/area-type-flow-4978
Fix #4978: Area Type Options › Text Flow by rows or by columns
2026-11-01 06:26:23 +07:00
BFlat 1c7744359d Merge pull request #5004 from storytold/feat/pen-ctrl-edit-4980
Fix #4980: Pen with Cmd/Ctrl drags the path, not hidden bounding-box handles
2026-11-01 06:26:08 +07:00
BFlat a7861010a4 Merge pull request #5003 from storytold/fix/artboard-fill-test-linux
Tests: artboard fill in EPS and print matches the red by hue on every platform
2026-11-01 06:25:53 +07:00
dotCooCoo 1840b9a582 EPS export: gradients of spot colors keep their spot inks
EPS export wrote every gradient with a spot color stop in process
colors. A gradient of tints of one spot color and paper white is now
written in that ink's Separation space, at Level 2 and 3. At Level 3, a
gradient that mixes a spot color with CMYK or gray colors, or two spot
colors, is written in a DeviceN space of the process inks its stops use
and the spot inks, each spot ink with the CMYK equivalent its Separation
space has. An off-center midpoint is a stop with the inks halfway
between its two stops. Paper white is an exact white, whether or not
the stop is linked to a process swatch.

These gradients are still written in process colors, each with its own
warning: a mix with other inks at Level 2; a mix with RGB or Lab colors
in an RGB export (a CMYK export converts those stops to CMYK first); a
DeviceN space that would need more than 32 colorants or a spot ink named
Cyan, Magenta, Yellow, Black, All or None; and a Perceptual gradient.
The old warning for every spot gradient has been removed.

The header lists two or more spot colors with each %%+ line right after
the comment it continues: %%DocumentCustomColors and %%CMYKCustomColor
were interleaved, so a DSC reader took the second ink's name as part of
the first ink's %%CMYKCustomColor.
2026-11-01 06:11:12 +07:00
bflatastic 7d8f1d4e06 Fix #4978: Area Type Options › Text Flow by rows or by columns 2026-11-01 06:11:11 +07:00
bflatastic 8704c15c6d Fix #4980: Pen with Cmd/Ctrl drags the path, not hidden bounding-box handles
Cmd/Ctrl held with the Pen lends the last-used selection tool (Direct
Selection until one is chosen), which already moved anchors, straight
segments and curves of the path being drawn, one undo step each, and
handed the path back to the Pen.

With the Selection tool used last, the lent tool hit-tested the
bounding box even though the canvas hides it while anchors are selected
on their own, as the end anchor of a path being drawn is. Over the
path it showed a resize pointer, and the drag scaled the path by a
handle nobody could see: a flat path did nothing at all.

The Selection tool's handles now take the pointer only while the box is
shown (View > Show Bounding Box, no anchors selected on their own), so
the lent Selection tool moves the path being drawn.

Tests: select::tests::hidden_box_handles_take_no_press_while_anchors_are_selected,
tests::draw2::pen_cmd_drag_edits_anchors_and_segments_and_goes_on_drawing.
2026-11-01 06:11:09 +07:00
bflatastic ffc9b71a2b Tests: artboard fill in EPS and PostScript print matches the red by hue, not one platform's CMYK values 2026-11-01 06:11:07 +07:00
Dylan M. Taylor d26dd933a7 packaging(flatpak): add OCI image build and GHCR publishing helper (#4987) 2026-10-31 18:53:15 -04:00
BFlat 0fac297ee7 Merge pull request #4998 from storytold/fix/linux-tablet-4967
Fix #4967: a drawing tablet's pen draws on a Wayland session by default
2026-11-01 05:49:01 +07:00
bflatastic 51dcb94661 Fix #4967: a drawing tablet's pen draws on a Wayland session by default
On a Wayland session Linux Display Server's default, Automatic, opened
the window on native Wayland. winit 0.30 doesn't bind the Wayland tablet
protocol, and KWin (since Plasma 6.3) and Mutter turn no tablet input
into pointer input, so the pen moved only the compositor's cursor and
the app got no motion or presses. Only X11 (XWayland) When a Pen Is
Attached, which users had to find and choose, sent the window through
XWayland, where the pen works as a mouse with its pressure.

Automatic now opens the window through XWayland when a pen is attached
as the app starts, as PhotoCraft does by default.
VECTORCRAFT_NATIVE_WAYLAND=1 keeps the window on Wayland, like
PhotoCraft's PHOTOCRAFT_NATIVE_WAYLAND. The X11 choice is unchanged.
2026-11-01 05:32:30 +07:00
BFlat 9a4989cf03 Merge pull request #4965 from dotCooCoo/fix/pdf-gradient-keeps-spot-ink
PDF export: a gradient that mixes a spot color with process colors keeps the spot ink
2026-11-01 05:31:12 +07:00
BFlat 5db1212698 Merge pull request #4966 from dotCooCoo/fix/issue-3826
Fix #3826: the toolbar's Gradient chip lines up with Color and None
2026-11-01 05:30:57 +07:00
BFlat 83e0c9d4b0 Merge pull request #4969 from dotCooCoo/fix/projective-from-array-validity
Perspective: a stored projection with large entries is judged by a scaled copy, so it reads back
2026-11-01 05:30:42 +07:00
BFlat 3bc7f0e1a2 Merge pull request #4970 from dotCooCoo/fix/dialog-backdrop-tab-stop
Accessibility: Tab no longer stops on a dialog's backdrop
2026-11-01 05:30:26 +07:00
BFlat 88899682c6 Merge pull request #4973 from dotCooCoo/fix/effect-apply-reply-index
Appearance: effect.apply reports the new effect's index in the object whose row it names
2026-11-01 05:30:11 +07:00
BFlat eee94b335e Merge pull request #4976 from dotCooCoo/feat/actions-delete-set
Actions: Delete Selection deletes the selected action set
2026-11-01 05:29:56 +07:00
BFlat 64ec131576 Merge pull request #4979 from dotCooCoo/fix/eyedropper-sample-limits
Eyedropper: color samples match the canvas and stay within their work limit
2026-11-01 05:29:40 +07:00
BFlat 72f3cfac30 Merge pull request #4982 from dotCooCoo/fix/issue-2960
Fix #2960: Recolor Artwork keeps its Preserve checkboxes between uses
2026-11-01 05:29:25 +07:00
BFlat e8b7b72687 Merge pull request #4985 from dotCooCoo/feat/properties-objects-on-path-options
Properties: an Objects on Path group shows Objects on Path Options with Pivot and Rotate
2026-11-01 05:29:15 +07:00
BFlat 489e64c5a3 Merge pull request #4984 from dotCooCoo/feat/objects-on-path-tool-options
Objects on Path: double-clicking the tool opens its options, and Pivot and Rotate apply to the objects attached next
2026-11-01 05:29:00 +07:00
BFlat be5e3a1050 Merge pull request #4989 from dotCooCoo/fix/issue-2105
Fix #2105: the window asks the GPU for no more than it offers
2026-11-01 05:28:44 +07:00