commit 7c43fb0b793230106b2d5b2a45e1fb0abc1ba370
parent 4e329ad7584fb0145715ae32918df4f55c3e5712
Author: Ryan Culpepper <ryanc@racket-lang.org>
Date: Fri, 17 Dec 2010 12:02:33 -0700
macro-stepper: fix props panel size memory, better width calculation
see PR 11551
original commit: 5a10ca8fb1f61a93021435839f673c66755cc5ae
Diffstat:
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
@@ -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
@@ -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)))))
-