It looks like it's not a question of running DrRacket for a while, but
of having multiple tabs in DrRacket. And, more specifically, it's not
about DrRacket, but about showing a window containing a `tab-panel%`
instance that uses the 'no-border style on OS X.

For example, start DrRacket with your program in one window. Create a
new window (not a new tab) and paste in

 #lang racket/gui

 (define f (new frame%
                [label "Slower"]
                [width 200]))
 (new tab-panel%
      [choices '("A" "B")]
      [parent f]
      [style '(no-border)])
 (send f show #t)

but don't run it. Start your universe program, and it should be ok.
Start running the tab-panel program, and your universe program will
misbehave. Close the frame created by the tab-panel program, and your
universe program will behave correctly again.

Using the 'no-border style for `tab-panel%` triggers the use of a
third-party widget PSMTabBarControl, so I think the problem must be in
that widget's implementation or its interaction with the `racket/gui`
event loop. In any case, now that I know that PSBTamBarControl is
relevant, I should be able to fix it soon.

At Wed, 06 Apr 2016 18:10:05 -0400, "John Clements" wrote:
> 
> > On Apr 6, 2016, at 9:02 AM, Matthew Flatt <mfl...@cs.utah.edu> wrote:
> > 
> > If the problem happens after DrRacket has been running for a while,
> > then that's good information and definitely a problem to investigate.
> 
> I can confirm that (after 3-5 hours of development work) the problem is back.
> 
> I also shortened the program down to about 36 lines (below). Finally, once 
> again I restarted DrR and the problem went away.
> 
> I’ll go ahead and file a bug report, I guess.
> 
> Okay, done.
> 
> John
> 
> 
> #lang racket
> 
> (require 2htdp/universe
>         2htdp/image)
> 
> (define r (rectangle 40 40 'solid 'green))
> 
> ;; represents a position on the screen
> (struct posn (x y) #:transparent)
> 
> ;; in seconds:
> (define TRANSITION-TIME 1)
> 
> ;; in frames per second
> (define FRAME-RATE 40)
> 
> (define SCENEWIDTH 400)
> (define SCENEHEIGHT 300)
> 
> (define transition-frames (* TRANSITION-TIME FRAME-RATE))
> 
> ;; given frame number, overlay
> ;; image at the correct location
> (define (draw-world w)
>   (define frac (/ (modulo w transition-frames) transition-frames))
>   (define 1-frac (- 1 frac))
>   (place-image r (+ (* 1-frac 50) (* frac 100))
>                (+ (* 1-frac 120) (* frac 115))
>                bg-scene))
> 
> (define bg-scene (empty-scene SCENEWIDTH SCENEHEIGHT))
> 
> (big-bang 0
>           [to-draw draw-world]
>           [on-tick add1 (/ 1 FRAME-RATE)])
> 
> 
> 
> > 
> > Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to