Finishes repair started in 8cbcba8ed so that mouse events can be
intercepted for `combo%` and `choice%` objects. DrRacket's
font preference choice relies on intercepting mouse events
to populate the menu, for example.
Reference counting doesn't seem to work, probably because the
relevant widgets are supposed to be private.
When a GUI program is run through `racket` instead of `gracket`, an
extra dance is needed on recent Mac OS X version (10.9, maybe also 10.8)
to make the Racket-based application take over the menu bar.
This is a nice example of why having #<undefined> as a language value is
generally a bad idea. Because in Scheme/Racket, everything that isn't
`refresh?` argument entirely - it was as if its value was always #t. Any
GUI change that was not meant to cause a refresh caused one anyway: a
silent performance error.
It turns out the test was wrong instead of the implementation.
In particular, it reversed the internal/external name and thus
the error it failed with was correct (though not the intention of
the test).
always pick a teaching language
If one hasn't been chosen before, choose the first one
(if one had been chosen before, the code would already
select that one, and we keep that behavior)
closes PR 14452
Split 'atomic-interior allocation to separate pages from other 'interior
allocation, and do not page-protect 'atomic-interior memory. Otherwise,
atomic-interior memory passed from one place to another --- especially
via the `#:in-original-place?` option on foreign functions --- can crash
due to triggering a write barrier in the wrong place.
Commit c18f6e8d6d, which changed some cross-place arguments to Pango and
Cairo to be 'atomic-interior, exposed the problem.
Merge to v6.0.1