The position of the snip doesn't change, when I run your code. I get
this output:
236.5 236.5
236.5 259.5
which indicates that the size of the snip is changing. Probably the
snip hasn't yet computed its size.
In fact, if you were to override get-extent in the snip, you'll see
that it's called in between the two printouts. Ie, use (make-object s%)
below where you have (make-object string-snip% "One") with this:
(define s%
(class string-snip%
(rename [super-get-extent get-extent])
(define/override (get-extent . args)
(printf "get-extent\n")
(super-get-extent . args))
(super-make-object "One")))
and you'll see this as output:
236.5 236.5
get-extent
236.5 259.5
Robby