Commit Graph
5679 Commits
Author SHA1 Message Date
dotCooCoo 4ec16519a4 Export: the HP-GL plot of the art's bounds places 9-slice and filtered symbol art before measuring
The art's bounds no longer clip art that 9-slice guides place, or refuse
art that an instance shows through a nested instance:

- An instance whose art goes through 9-slice guides, at any depth, is
  measured as its art placed through the guides, with the objects the
  plot leaves out hidden after placing. Leaving them out first changed
  the box the guides cut.
- Hidden art is not placed, so it does not use up the limit on placed
  objects that the visible instances share.
- The copy of a dynamic symbol that an instance's changes are measured
  on keeps the symbol's 9-slice guides and natural size.
- The changes of the instances in a dynamic symbol's art are collected
  from all of the art, also from objects at 0% opacity or without paint,
  which an instance of the symbol can change.
2026-11-14 17:52:29 -08:00
BFlat dafd993395 Merge pull request #7658 from dotCooCoo/feat/svg-filter-defaults
Effects: Effect › SVG Filters lists default filters
2026-11-15 06:18:12 +07:00
BFlat 4cf0a4b182 Merge pull request #7474 from dotCooCoo/feat/ai-insert-aki
Type: .ai import reads Insert Aki, and .ai save writes it
2026-11-15 06:18:04 +07:00
BFlat 4e42e2bbb0 Merge pull request #7681 from dotCooCoo/feat/east-asian-glyph-forms
Type: Glyphs panel menu draws the selected characters in an East Asian glyph form
2026-11-15 06:17:55 +07:00
BFlat 9f6edb7239 Merge pull request #7682 from dotCooCoo/fix/graph-outline-stroke-keeps-plot
Graphs: Outline Stroke and a graph left with only labels keep the plot in place
2026-11-15 06:17:47 +07:00
BFlat 5872e71651 Merge pull request #7452 from dotCooCoo/feat/trace-preset-defaults
Image Trace: presets trace at Paths 50 with new Corners and Noise
2026-11-15 06:17:23 +07:00
BFlat 4fffbce639 Merge pull request #7614 from dotCooCoo/fix/export-cull-brushed-path-art
PDF, EPS and print: a brushed path just off the page whose brush paints onto it is written
2026-11-15 06:17:15 +07:00
BFlat a92993daf9 Merge pull request #7582 from dotCooCoo/fix/clip-effects-hit-test
Selection: clicks in a clip group follow the region its clipping path's effects give it
2026-11-15 06:16:57 +07:00
BFlat bc2f9d888a Merge pull request #7683 from dotCooCoo/fix/hpgl-art-bounds-dynamic-symbols
Export: an HP-GL plot of the art's bounds leaves out images in dynamic symbols
2026-11-15 06:16:40 +07:00
BFlat 7ddeef73d6 Merge pull request #7608 from dotCooCoo/fix/emfplus-import
Metafile import: EMF and WMF are read through craft-metafile, so EMF+ pictures open
2026-11-15 06:16:24 +07:00
BFlat afca93f151 Merge pull request #7684 from dotCooCoo/fix/japanese-messages-docs
Docs: Japanese messages are listed as partial, with the untranslated report's count
2026-11-15 06:16:08 +07:00
BFlat 8b8daabf3e Merge pull request #7359 from dotCooCoo/fix/tr-message-rows
i18n: Turkish has a row for 1,811 of the messages the untranslated report lists
2026-11-15 06:16:00 +07:00
BFlat 66c73c4b91 Merge pull request #7685 from dotCooCoo/fix/warichu-line-height-block-lines
Type: a warichu line holds the ascent and descent of its outer block lines
2026-11-15 06:15:52 +07:00
BFlat c290957988 Merge pull request #7483 from dotCooCoo/fix/uk-missing-message-rows
i18n: Ukrainian translates 114 messages that no catalog had a row for
2026-11-15 05:31:03 +07:00
BFlat 0fe02d8544 Merge pull request #7651 from dotCooCoo/feat/smart-punctuation-dialog
Type: Smart Punctuation replaces ligatures, extra spaces and fractions and reports results
2026-11-15 05:30:55 +07:00
BFlat c0ce77a912 Merge pull request #7663 from dotCooCoo/feat/perspective-auto-plane-positioning
Perspective: Perspective Grid Options has Automatic Plane Positioning
2026-11-15 05:30:40 +07:00
BFlat 52ec037f4a Merge pull request #7425 from dotCooCoo/fix/ai-envelope-budget-warped-type
.ai save: images with a Warp count against the envelope limit
2026-11-15 05:30:30 +07:00
BFlat 0e78bfa60c Merge pull request #7580 from dotCooCoo/fix/create-outlines-gradient-layout-bounds
Type: Create Outlines keeps a run's gradient across the whole text
2026-11-15 05:30:22 +07:00
BFlat 9153900b1f Merge pull request #7322 from dotCooCoo/fix/graph-series-group-opacity
Graphs: the transparency set on a series group is kept
2026-11-15 05:30:04 +07:00
BFlat 8346001971 Merge pull request #7618 from dotCooCoo/fix/opentype-ligature-note-every-frame
OpenType panel: the tracked-ligatures note reads every selected story frame
2026-11-15 05:29:54 +07:00
BFlat 35bf3a7412 Merge pull request #7625 from dotCooCoo/fix/shape-builder-open-path-drawn-fill
Shape Builder: an open path counts as filled by the fill rows that draw
2026-11-15 05:29:46 +07:00
BFlat 2986ddb104 Merge pull request #7462 from dotCooCoo/fix/convert-to-text-locked-frames
Type: Convert to Text and Remove Breaks on a selected story include its locked and hidden frames
2026-11-15 05:29:38 +07:00
BFlat 63e40bca44 Merge pull request #7488 from dotCooCoo/fix/3d-shadow-builds-once
3D: a render with a shadow builds each solid once
2026-11-15 05:29:29 +07:00
BFlat d68b7f3990 Merge pull request #7670 from dotCooCoo/feat/open-pdf-pages-as-links
Import PDF: Import PDF pages as links opens each page linked to its file
2026-11-15 05:29:21 +07:00
BFlat c69375c7f3 Merge pull request #7633 from dotCooCoo/fix/trace-clean-gray-photo-tone
Image Trace: a gray photo with little noise counts as continuous tone
2026-11-15 05:29:13 +07:00
BFlat dcd6e69e83 Merge pull request #7610 from dotCooCoo/fix/text-wrap-offset-refused
Text wrap: an out-of-range or non-number offset is refused
2026-11-15 05:29:05 +07:00
BFlat 007b2b66fb Merge pull request #7540 from dotCooCoo/fix/pdf-tiff-keeps-icc
PDF export: a stored gray or RGB image keeps its ICC profile
2026-11-15 05:28:56 +07:00
BFlat ada1c9263a Merge pull request #7555 from dotCooCoo/fix/tabbed-rtl-negative-tracking-break-bound
Type: a tabbed right-to-left line with negative tracking stops reading after a bounded number of breaks
2026-11-15 05:28:48 +07:00
BFlat ccb62b0912 Merge pull request #7660 from dotCooCoo/fix/svg-use-chain-bounded
SVG import: refuse an SVG whose use copies and styles expand past the limits
2026-11-15 05:27:22 +07:00
BFlat 15ae607c63 Merge pull request #7667 from dotCooCoo/feat/links-sort-by-size
Links: Sort by Size in the panel menu lists the smallest file first
2026-11-15 05:27:12 +07:00
BFlat 052c1b1d77 Merge pull request #7465 from dotCooCoo/fix/blend-reversed-key-stroke-direction
Blend: stroke gradients and dashes follow a key path the blend turns
2026-11-15 05:27:01 +07:00
BFlat f90f65736b Merge pull request #7253 from ncic/pencil-no-guides
Pencil: ignores Smart Guides and Snap to Point
2026-11-15 05:26:52 +07:00
dotCooCoo dfc4db7a9b Docs: Japanese messages are listed as partial, with the report's count
The Japanese row in docs/localization-parity.md said every message is
translated, and the Japanese catalog line in docs/target-app-parity.md
said 38 messages were missing, one of them waiting on #7214, which has
merged. On main the untranslated report lists 98 messages without a
Japanese row, 77 of which every complete-message language lacks. Both
lines now give the counted rows and the report's count, and name the
open pull requests that translate part of them.
2026-11-14 13:47:36 -08:00
dotCooCoo f1cffdd8c0 Type: a warichu line holds the ascent and descent of its outer block lines
A block's line took the tallest ascent and deepest descent of its
characters, or the height of the stack's em boxes, whichever was larger.
The top block line's characters reach above the stack by their ascent
past the em box, and the bottom line's below it by their descent, so with
a wide Line Gap the line was too short for them. The line's ascent and
descent now also take in each character's reach from its own block line's
baseline.
2026-11-14 13:46:56 -08:00
dotCooCoo b12c78a731 Graphs: Outline Stroke and a graph left with only labels keep the plot in place
- Outline Stroke on a graph's strokes, including Object > Expand with
  Stroke on, adjusts the bounds the graph keeps, the same way
  Create Outlines on its labels does. Before, the stroke outlines
  changed the bounds of the art without type, and the next redraw
  stretched the plot by the width the outlines added.
- A graph that keeps `placedArt` and has no art other than type left
  is no longer measured on the bounds of all its art. A label edit on
  such a graph moved and stretched the plot at the next redraw; the
  plot now stays where it is.
- A redraw no longer measures a move or scale on art that has no width
  or no height now, such as a graph left with one axis line. Before,
  the plot collapsed to no width.
- A clipping group in a graph that holds type is measured on its clip
  when the clip does not depend on type, so moving art outside the clip
  does not change the bounds. Blends, envelopes and repeats are
  measured whole, as they are drawn.
- The doc crate's helper is named `graph_art_without_type` and sits
  with the file's other free functions.
- docs/mcp.md lists Outline Stroke and states that moving an outlined
  label, a swatch, an axis or a tick mark on its own can move or scale
  the plot, and that a graph left with only labels, or with art that
  has no width or height, does not follow a move.
- Tests: a scale of the graph made before outlining a label, a move of
  a graph opened from `.ai` after its label is restyled and moved,
  Outline Stroke after a move, a graph left with only its labels or
  with one line, and clipping groups holding type.
2026-11-14 13:45:46 -08:00
dotCooCoo 55615be12c Export: an HP-GL plot of the art's bounds leaves out images in dynamic symbols
A plot of the art's bounds now leaves placed images, objects at 0%
opacity and unpainted paths out of the art of a dynamic symbol, as it
does for other symbols. An object that an instance's fill, stroke or
opacity makes the plot draw is measured for that instance only, and an
instance whose symbol holds nothing else is left out, so a document
with only such instances is refused.
2026-11-14 13:34:13 -08:00
dotCooCoo f4a5d65f6b Type: Glyphs panel menu draws the selected characters in an East Asian glyph form
With Show East Asian Options on, the Glyphs panel menu lists Traditional
Forms, Expert Forms, JIS 04, JIS 90, JIS 78 and JIS 83 Forms, Monospaced
Full-Width, Half-Width, Third-Width and Quarter-Width Forms, and Revert
To Default Forms. Each form draws the selected characters with the
font's OpenType feature for it (trad, expt, jp04, jp90, jp78, jp83,
fwid, hwid, twid or qwid). A form is checked when every selected
character has it and disabled when none of the faces that draw the
selected text, fallback faces included, has the feature.

The form is a new character attribute, glyphForm, one form at a time
(text.setFormat, text.setRangeStyle). It is saved only when set,
character styles carry it, and runs that differ only in their form
shape as one piece of text. SVG writes it in font-feature-settings;
PDF draws the glyphs from the layout.
2026-11-14 13:29:30 -08:00
dotCooCoo 9120268b7e Merge main into fix/tr-message-rows 2026-11-14 13:27:33 -08:00
BFlat 9ddbf25bef Merge pull request #7553 from dotCooCoo/feat/da-complete-messages
i18n: Danish translates status and error messages
2026-11-15 04:23:09 +07:00
BFlat bb59d1c711 Merge pull request #7657 from dotCooCoo/feat/asset-export-panel-menu-options
Asset Export: Create Sub-folders, Open Location after Export and Format Settings in the panel menu
2026-11-15 04:23:01 +07:00
BFlat a901c024e5 Merge pull request #7387 from dotCooCoo/feat/arrange-nest
Cutting Tools: Nest Shapes packs the selected objects onto a sheet or roll
2026-11-15 04:22:37 +07:00
BFlat 20ae675b9b Merge pull request #7622 from dotCooCoo/fix/graph-label-restyle-keeps-plot
Graphs: restyling the labels leaves the plot where it is at the next redraw
2026-11-15 04:22:27 +07:00
BFlat 88dd37d2d9 Merge pull request #7527 from dotCooCoo/fix/3d-masked-cap-graphic-once
3D: a gradient fill with transparent stops and its stroke draw their graphic once
2026-11-15 04:22:18 +07:00
BFlat 88b83a8689 Merge pull request #7546 from dotCooCoo/fix/svg-raster-keeps-resolution
SVG import: a raster stored again as PNG keeps its resolution
2026-11-15 04:22:10 +07:00
ncic d3213cf5b2 Merge remote-tracking branch 'upstream/main' into pencil-no-guides 2026-11-14 22:02:14 +01:00
dotCooCoo cf8b88b0ea Merge main into fix/clip-effects-hit-test 2026-11-14 12:59:50 -08:00
dotCooCoo 8e6c948010 PDF export: a JPEG written without its profile keeps its JPEG data
In PDF/X-1a, a tagged gray JPEG that the Compression settings keep as
JPEG was decoded and written with Flate. It is now written with its
JPEG data unchanged, in DeviceGray without its profile.

A PNG or JPEG embedded as it is now has its gray or RGB profile checked
with valid_icc, like the images the recoder writes: a malformed profile
is left out, the JPEG keeping its JPEG data and the PNG decoded.
2026-11-14 12:56:47 -08:00
dotCooCoo 44f8c41a15 Merge main into feat/trace-preset-defaults 2026-11-14 12:48:25 -08:00
dotCooCoo 635491c3d8 Merge main into fix/trace-clean-gray-photo-tone 2026-11-14 12:43:08 -08:00
dotCooCoo ec5472f726 Merge main into fix/shape-builder-open-path-drawn-fill 2026-11-14 12:38:20 -08:00