ludic.ui: a pooled node's reset lets go of its wrapped lines instead of clearing them - they are the memo's list (ly_wrap), shared by every node with that text, so a text that wraps vanished from the third frame on, in the game as in ui-preview; smoke.txt holds four frames of it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
dd25267502
commit
e84a59aeff
3 changed files with 28 additions and 2 deletions
|
|
@ -55,7 +55,7 @@ export property UiNode {
|
||||||
z: int = 0
|
z: int = 0
|
||||||
nowrap: bool = false # white-space: nowrap
|
nowrap: bool = false # white-space: nowrap
|
||||||
ellipsis: bool = false # text-overflow: ellipsis
|
ellipsis: bool = false # text-overflow: ellipsis
|
||||||
lines: []string = null # a wrapped text's lines
|
lines: []string = null # a wrapped text's lines: the memo's (ly_wrap), not the node's
|
||||||
none: Val = Value.null() # what ui_attr answers for an attribute it lacks: made with the node, read only
|
none: Val = Value.null() # what ui_attr answers for an attribute it lacks: made with the node, read only
|
||||||
var_names: []string = null # its custom properties (--name), which its descendants inherit
|
var_names: []string = null # its custom properties (--name), which its descendants inherit
|
||||||
var_vals: []string = null
|
var_vals: []string = null
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
function nd_reset_b(n: UiNode) -> void {
|
function nd_reset_b(n: UiNode) -> void {
|
||||||
n.nowrap = false
|
n.nowrap = false
|
||||||
n.ellipsis = false
|
n.ellipsis = false
|
||||||
if n.lines != null { List.clear(n.lines) }
|
n.lines = null # the memo's list (ly_wrap), shared by every node with that text: never cleared
|
||||||
if n.var_names != null { List.clear(n.var_names) }
|
if n.var_names != null { List.clear(n.var_names) }
|
||||||
if n.var_vals != null { List.clear(n.var_vals) }
|
if n.var_vals != null { List.clear(n.var_vals) }
|
||||||
n.fg = -1
|
n.fg = -1
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,32 @@
|
||||||
< 0 0 1 1 #ffffff 1
|
< 0 0 1 1 #ffffff 1
|
||||||
<= ok
|
<= ok
|
||||||
|
|
||||||
|
# wrapped text stays drawn: a pooled node's reset once emptied the memo's shared lines, so a text
|
||||||
|
# that wraps vanished from the third frame on (two generations a screen)
|
||||||
|
> load "Wrap" "<div class=\"c\"><p>Seesaibling aus dem Nordbecken</p></div>" ".c { width: 120px }"
|
||||||
|
<= ok
|
||||||
|
|
||||||
|
> show "Wrap"
|
||||||
|
<= ok
|
||||||
|
|
||||||
|
> frame 0
|
||||||
|
< "Seesaibling aus"
|
||||||
|
< "dem Nordbecken"
|
||||||
|
<= ok
|
||||||
|
|
||||||
|
> frame 1
|
||||||
|
< "Seesaibling aus"
|
||||||
|
<= ok
|
||||||
|
|
||||||
|
> frame 2
|
||||||
|
< "Seesaibling aus"
|
||||||
|
< "dem Nordbecken"
|
||||||
|
<= ok
|
||||||
|
|
||||||
|
> frame 3
|
||||||
|
< "dem Nordbecken"
|
||||||
|
<= ok
|
||||||
|
|
||||||
> frobnicate
|
> frobnicate
|
||||||
<= fail "unknown request frobnicate"
|
<= fail "unknown request frobnicate"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue