From 70b48d535f2990658d1dd99728c2eb0b15da03e8 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sat, 16 Jun 2007 19:02:12 +0000 Subject: [PATCH] made drs remember the frame's position and use it for the initial position svn: r6676 --- collects/drscheme/private/main.ss | 10 ++++++++-- collects/drscheme/private/unit.ss | 11 ++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/collects/drscheme/private/main.ss b/collects/drscheme/private/main.ss index c92d3cc8ed..40e6d5eb1c 100644 --- a/collects/drscheme/private/main.ss +++ b/collects/drscheme/private/main.ss @@ -57,6 +57,12 @@ (finder:default-filters))) (application:current-app-name (string-constant drscheme)) + (preferences:set-default 'drscheme:frame:initial-position #f + (λ (x) (or (not x) + (and (pair? x) + (number? (car x)) + (number? (cdr x)))))) + (preferences:set-default 'drscheme:limit-memory #f (λ (x) (or (boolean? x) (integer? x) @@ -462,8 +468,8 @@ [no-dups (remove-duplicates normalized/filtered)] [frames (map (λ (f) (handler:edit-file - f - (λ () (drscheme:unit:open-drscheme-window f)))) + f + (λ () (drscheme:unit:open-drscheme-window f)))) no-dups)]) (when (null? (filter (λ (x) x) frames)) (make-basic)))) diff --git a/collects/drscheme/private/unit.ss b/collects/drscheme/private/unit.ss index 6b99a876d4..0444d80419 100644 --- a/collects/drscheme/private/unit.ss +++ b/collects/drscheme/private/unit.ss @@ -1156,6 +1156,9 @@ module browser threading seems wrong. file-menu:get-save-as-item file-menu:get-revert-item file-menu:get-print-item) + + (define/override (on-move x y) + (preferences:set 'drscheme:frame:initial-position (cons x y))) ;; logging : (union #f string[directory-name]) (field [logging #f] @@ -3606,10 +3609,16 @@ module browser threading seems wrong. (create-new-drscheme-frame name)))] [else (create-new-drscheme-frame name)])])) - + + (define first-frame? #t) (define (create-new-drscheme-frame filename) (let* ([drs-frame% (drscheme:get/extend:get-unit-frame)] [frame (new drs-frame% (filename filename))]) (send (send frame get-interactions-text) initialize-console) + (when first-frame? + (let ([pos (preferences:get 'drscheme:frame:initial-position)]) + (when pos + (send frame move (car pos) (cdr pos))))) + (set! first-frame? #f) (send frame show #t) frame))))