A frame with borders tiles unless told to stretch
game-maker / gate (push) Successful in 1m32s
game-maker / suite (push) Successful in 5m47s

The fill of a sliced frame defaulted to `Stretch`. It is `Repeat` now, and the Fill dropdown lists
`Repeat` first.

The saved document keeps writing only the fill that differs from the default, so the key it
carries is now `stretch`, and a frame without it repeats. A frame saved before with the key
absent and meaning stretch would therefore tile; none of the stored projects has one - both sliced
frames on the server carry `fill: "repeat"` explicitly, so they draw as before.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 5 committed 2026-09-16 18:13:11 +02:00
1 parent 94a0a578ed
commit bf0be66c9d
6 files changed
+54 -27

No files matched your search

+5 -4
View File
@@ -8,6 +8,7 @@ import type { FrameBorders, TextureAsset, TextureFrame } from '../../core/model/
import { type PropertyValue, textOf } from '../../core/model/Properties';
import { findAssetOf, type Project } from '../../core/model/Project';
import {
DEFAULT_FILL,
frameBorders,
frameFill,
frameRect,
@@ -125,16 +126,16 @@ function fillRow(host: InspectorHost, assetId: string, frameId: string): void {
key: 'fill',
label: 'Fill',
kind: 'enum',
default: 'stretch',
default: DEFAULT_FILL,
options: [
{ value: 'stretch', label: 'Stretch' },
{ value: 'repeat', label: 'Repeat' },
{ value: 'stretch', label: 'Stretch' },
],
},
frame ? frameFill(frame) : 'stretch',
frame ? frameFill(frame) : DEFAULT_FILL,
sliceHandlers(host, assetId, frameId, (input, slice) => ({
...slice,
fill: textOf(input) === 'repeat' ? 'repeat' : 'stretch',
fill: textOf(input) === 'stretch' ? 'stretch' : 'repeat',
})),
);
host.fields.set('fill', row);