diff --git a/pkgs/gui-pkgs/gui-lib/mred/private/wx/cocoa/canvas.rkt b/pkgs/gui-pkgs/gui-lib/mred/private/wx/cocoa/canvas.rkt index f31c36e5..976d9f00 100644 --- a/pkgs/gui-pkgs/gui-lib/mred/private/wx/cocoa/canvas.rkt +++ b/pkgs/gui-pkgs/gui-lib/mred/private/wx/cocoa/canvas.rkt @@ -532,7 +532,7 @@ (fix-dc) (when (and (is-auto-scroll?) (not (is-panel?))) - (reset-auto-scroll 0 0)) + (reset-auto-scroll)) (on-size)) ;; this `on-size' method is for `editor-canvas%', only: diff --git a/pkgs/gui-pkgs/gui-lib/mred/private/wx/common/canvas-mixin.rkt b/pkgs/gui-pkgs/gui-lib/mred/private/wx/common/canvas-mixin.rkt index 2da4057d..d604988c 100644 --- a/pkgs/gui-pkgs/gui-lib/mred/private/wx/common/canvas-mixin.rkt +++ b/pkgs/gui-pkgs/gui-lib/mred/private/wx/common/canvas-mixin.rkt @@ -59,7 +59,7 @@ h-pos v-pos) (void)) - (define/public (reset-auto-scroll h-pos v-pos) + (define/public (reset-auto-scroll [h-pos -1] [v-pos -1]) (let ([xb (box 0)] [yb (box 0)]) (get-client-size xb yb) diff --git a/pkgs/gui-pkgs/gui-lib/mred/private/wx/gtk/canvas.rkt b/pkgs/gui-pkgs/gui-lib/mred/private/wx/gtk/canvas.rkt index cea95bd7..6857ceb4 100644 --- a/pkgs/gui-pkgs/gui-lib/mred/private/wx/gtk/canvas.rkt +++ b/pkgs/gui-pkgs/gui-lib/mred/private/wx/gtk/canvas.rkt @@ -242,6 +242,7 @@ is-auto-scroll? is-disabled-scroll? get-virtual-width get-virtual-height refresh-for-autoscroll refresh-all-children + reset-auto-scroll get-eventspace register-extra-gtk) @@ -368,6 +369,9 @@ (define/override (set-size x y w h) (super set-size x y w h) + (when (and (is-auto-scroll?) + (not (is-panel?))) + (reset-auto-scroll)) (on-size)) (set! dc (new dc% [canvas this] [transparent? (memq 'transparent style)])) diff --git a/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/canvas.rkt b/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/canvas.rkt index 160c71a2..9a8ecec1 100644 --- a/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/canvas.rkt +++ b/pkgs/gui-pkgs/gui-lib/mred/private/wx/win32/canvas.rkt @@ -286,6 +286,9 @@ [h (if (= h -1) (- (RECT-bottom r) (RECT-top r)) h)]) (MoveWindow canvas-hwnd 0 0 (max 1 (- w COMBO-WIDTH)) h #t) (MoveWindow combo-hwnd 0 0 (max 1 w) (- h 2) #t))) + (when (and (is-auto-scroll?) + (not (is-panel?))) + (reset-auto-scroll)) (on-size)) ;; this `on-size' method is for `editor-canvas%', only: