Skip to content

fix: investigar por qué push no preserva font! en Red Draw (Linux/GTK) #37

Description

@anlaco

Contexto

Al renderizar items del Front Panel, cada render-fp-item devuelve un bloque Draw con comandos font (font-object). El patrón canónico para aislar estado gráfico es push [...]:

```red
append cmds 'push
append/only cmds render-fp-item item selected?
```

Problema

Con push, Red Draw recibe el font! object como make object! [] en vez del objeto real, causando:

```
*** Script Error: invalid Draw dialect input at: [font make object! [] text ...]
```

Workaround actual

Reset manual de estado Draw al inicio de cada item:

```red
append cmds compose [pen 0.0.0 fill-pen off line-width 1 font (fp-black-font)]
```

Funciona pero viola el principio de aislamiento — cada item tiene que saber qué estado previo limpiar.

Lo que hay que investigar

  • ¿Es un bug de Red Draw en Linux/GTK?
  • ¿El problema es cómo compose serializa/copia el font! object al insertarlo en el bloque de push?
  • ¿Hay otra forma de construir el bloque [push [...font-obj...]] que preserve el tipo font!?
  • Probar en Windows/macOS para ver si es plataforma-específico

Solución ideal

Volver a push/pop y eliminar el reset manual, una vez entendida la causa raíz.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions