From 7c43fb0b793230106b2d5b2a45e1fb0abc1ba370 Mon Sep 17 00:00:00 2001 From: Ryan Culpepper Date: Fri, 17 Dec 2010 12:02:33 -0700 Subject: [PATCH] macro-stepper: fix props panel size memory, better width calculation see PR 11551 original commit: 5a10ca8fb1f61a93021435839f673c66755cc5ae --- .../macro-debugger/syntax-browser/widget.rkt | 26 +++++++++++++++---- collects/macro-debugger/view/extensions.rkt | 4 +-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/collects/macro-debugger/syntax-browser/widget.rkt b/collects/macro-debugger/syntax-browser/widget.rkt index fbae429..fd75cdd 100644 --- a/collects/macro-debugger/syntax-browser/widget.rkt +++ b/collects/macro-debugger/syntax-browser/widget.rkt @@ -34,7 +34,8 @@ (define -text (new browser-text%)) (define -ecanvas (new canvas:color% (parent -split-panel) (editor -text))) - (define -props-panel (new horizontal-panel% (parent -split-panel))) + (define -props-panel + (new horizontal-panel% (parent -split-panel) (style '(deleted)))) (define props (new properties-view% (parent -props-panel) @@ -52,16 +53,25 @@ (define/public (show-props show?) (internal-show-props show?)) + (define saved-props-percentage #f) + (define/private (internal-show-props show?) (if show? (unless (send -props-panel is-shown?) - (let ([p (send/i config config<%> get-props-percentage)]) + (send -split-panel begin-container-sequence) + (let ([p (or saved-props-percentage + (send/i config config<%> get-props-percentage))]) (send -split-panel add-child -props-panel) (update-props-percentage p)) - (send -props-panel show #t)) + (send -props-panel show #t) + (send -split-panel end-container-sequence)) (when (send -props-panel is-shown?) + (send -split-panel begin-container-sequence) + (set! saved-props-percentage + (cadr (send -split-panel get-percentages))) (send -split-panel delete-child -props-panel) - (send -props-panel show #f)))) + (send -props-panel show #f) + (send -split-panel end-container-sequence)))) (define/private (update-props-percentage p) (send -split-panel set-percentages @@ -220,8 +230,14 @@ (define/private (calculate-columns) (define style (code-style -text (send/i config config<%> get-syntax-font-size))) (define char-width (send style get-text-width (send -ecanvas get-dc))) + #| (define-values (canvas-w canvas-h) (send -ecanvas get-client-size)) - (sub1 (inexact->exact (floor (/ canvas-w char-width))))) + (sub1 (inexact->exact (floor (/ canvas-w char-width)))) + |# + (let ([admin (send -text get-admin)] + [w-box (box 0.0)]) + (send admin get-view #f #f w-box #f) + (sub1 (inexact->exact (floor (/ (unbox w-box) char-width)))))) ;; Initialize (super-new) diff --git a/collects/macro-debugger/view/extensions.rkt b/collects/macro-debugger/view/extensions.rkt index 9c6f240..1614f7a 100644 --- a/collects/macro-debugger/view/extensions.rkt +++ b/collects/macro-debugger/view/extensions.rkt @@ -80,8 +80,8 @@ (define/override (show-props show?) (super show-props show?) - (send/i macro-stepper widget<%> update/preserve-view)) + (when (send (send/i macro-stepper widget<%> get-config) get-refresh-on-resize?) + (send/i macro-stepper widget<%> update/preserve-view))) (super-new (config (send/i macro-stepper widget<%> get-config))))) -