From 138009b8a547f00331c68a2e9e12409f11f232ce Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 28 Apr 2007 00:12:22 +0000 Subject: [PATCH] fix bug in show after maximize svn: r6062 --- collects/mred/private/mrtop.ss | 2 +- collects/mred/private/wxtop.ss | 40 +++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/collects/mred/private/mrtop.ss b/collects/mred/private/mrtop.ss index 0ed6370ec8..63737b4675 100644 --- a/collects/mred/private/mrtop.ss +++ b/collects/mred/private/mrtop.ss @@ -173,7 +173,7 @@ [(i) (send wx set-icon i)] [(i b) (send wx set-icon i b)] [(i b l?) (send wx set-icon i b l?)])] - [maximize (entry-point (lambda (on?) (send wx maximize on?)))] + [maximize (entry-point (lambda (on?) (send wx position-for-initial-show) (send wx maximize on?)))] [get-menu-bar (entry-point (lambda () (let ([mb (send wx get-the-menu-bar)]) (and mb (wx->mred mb)))))] [modified (entry-point diff --git a/collects/mred/private/wxtop.ss b/collects/mred/private/wxtop.ss index 4f3d3fc1f0..d8bace448a 100644 --- a/collects/mred/private/wxtop.ss +++ b/collects/mred/private/wxtop.ss @@ -335,24 +335,8 @@ ;; pass now to superclass's show. [show (lambda (on?) - (when (and on? pending-redraws?) - (force-redraw)) - (when (and on? use-default-position?) - (set! use-default-position? #f) - (if dlg? - (center 'both) - (let*-values ([(w) (get-width)] - [(h) (get-height)] - [(sw sh) (get-display-size)] - [(x x-reset?) (if (< (+ top-x w) sw) - (values top-x #f) - (values (max 0 (- sw w 10)) #t))] - [(y y-reset?) (if (< (+ top-y h) sh) - (values top-y #f) - (values (max 0 (- sh h 20)) #t))]) - (move x y) - (set! top-x (if x-reset? init-top-x (+ top-x 10))) - (set! top-y (if y-reset? init-top-y (+ top-y 20)))))) + (when on? + (position-for-initial-show)) (if on? (hash-table-put! top-level-windows this #t) (hash-table-remove! top-level-windows this)) @@ -390,6 +374,26 @@ (wx:queue-callback (lambda () (resized)) #t))))]) (public + [position-for-initial-show + (lambda () + (when pending-redraws? + (force-redraw)) + (when use-default-position? + (set! use-default-position? #f) + (if dlg? + (center 'both) + (let*-values ([(w) (get-width)] + [(h) (get-height)] + [(sw sh) (get-display-size)] + [(x x-reset?) (if (< (+ top-x w) sw) + (values top-x #f) + (values (max 0 (- sw w 10)) #t))] + [(y y-reset?) (if (< (+ top-y h) sh) + (values top-y #f) + (values (max 0 (- sh h 20)) #t))]) + (move x y) + (set! top-x (if x-reset? init-top-x (+ top-x 10))) + (set! top-y (if y-reset? init-top-y (+ top-y 20)))))))] [handle-traverse-key (lambda (e) (and panel