A recent bug fix involved moving part of an `editor-canvas%' resize
out of atomic mode by queueing a callback (because the resize involves
quesrying the editor for its size, etc.), but then the callback
happens after a canvas is shown, which can cause it to appear with
bogus initial scrollbars. Queue the callback instead as a "refresh"
level callback, which gets a chance to run before a frame is made
visible.
The `on-size' method is called in atomic mode,
and we can't call into the editor's sizing functions
in atomic mode.
Watch out for refresh and/or window-sizing problems.
Changed `open-output-text-editor' to put its additions into
an edit sequence to better work with threads.
Fixed problems in editor-canvas refresh and resize events, where
the editor's refresh synchronization wasn't used properly.
Fixed race conditions in the the protocol that is used to separate
refreshes and edit sequences.
Related to PR 12749
- adds a `#:timeout-lock-there' argument to `get-preference'
- fixes preference looup in `racket/gui'
- make preference names consistently use `GRacket' and consistently
fall back on `MrEd' names
- fix Emacs-style undo mode while we're at it
This change may also affect other attempts to scroll, however, so watch for strange scrollings when multiple editor-canvaess are displaying the same text% object.
closes PR 10853