I have the impression that invoking methods like 'set' aren't supposed to invoke callbacks like that, generally speaking.
Robby On Sun, Sep 15, 2013 at 9:58 AM, Laurent <laurent.ors...@gmail.com> wrote: > On Sun, Sep 15, 2013 at 4:34 PM, Robby Findler < > ro...@eecs.northwestern.edu> wrote: > >> >> What was the issue? >> > > It was an infinite loop triggered by a particular callback in list-box%: > > #lang racket/gui > > (define my-frame (new frame% [label "my-frame"] > [min-width 200] [min-height 200])) > > (define lb (new list-box% > [parent my-frame] > [label "values"] > [choices '("a" "b")] > [callback (λ(lb ev) > (displayln (send ev get-event-type)) > (send lb clear) > (send lb set '("b")) > )])) > > (send my-frame show #t) > > Click on "b", this will trigger infinite events > > It's actually the combination of the callback calling `clear' and `set' > that triggers this infinite loop. > The problem is easily solved by removing `(clear)', which is redundant > with `set' anyway (which I hadn't understood at first). > > Laurent > > >
_________________________ Racket Developers list: http://lists.racket-lang.org/dev