fixed a bug in define popdown (PR 8083) and a bug in undoing the [ thing (PR 8073)

svn: r3185
This commit is contained in:
Robby Findler 2006-06-02 15:20:30 +00:00
parent f3ecc118f0
commit c1239c146e
2 changed files with 16 additions and 13 deletions

View File

@ -604,10 +604,9 @@ module browser threading seems wrong.
(λ (menu editor event) (λ (menu editor event)
(when (is-a? editor text%) (when (is-a? editor text%)
(let* ([canvas (send editor get-canvas)] (let* ([canvas (send editor get-canvas)]
[frame (and canvas (send canvas get-frame))]) [frame (and canvas (send canvas get-top-level-window))])
(unless (is-a? frame -frame<%>) (when (is-a? frame -frame<%>)
(let* ([tab (send frame get-current-tab)] (let* ([language-settings (send (send frame get-definitions-text) get-next-settings)]
[language-settings (send (send tab get-definitions-text) get-next-settings)]
[new-language (drscheme:language-configuration:language-settings-language language-settings)] [new-language (drscheme:language-configuration:language-settings-language language-settings)]
[capability-info (send new-language capability-value 'drscheme:define-popup)]) [capability-info (send new-language capability-value 'drscheme:define-popup)])
(when capability-info (when capability-info
@ -1031,7 +1030,8 @@ module browser threading seems wrong.
on-tab-change on-tab-change
enable-evaluation enable-evaluation
disable-evaluation disable-evaluation
get-definitions/interactions-panel-parent)) get-definitions/interactions-panel-parent
register-capability-menu-item))
(define frame-mixin (define frame-mixin
(mixin (drscheme:frame:<%> frame:searchable-text<%> frame:delegate<%> frame:open-here<%>) (mixin (drscheme:frame:<%> frame:searchable-text<%> frame:delegate<%> frame:open-here<%>)

View File

@ -1229,11 +1229,12 @@
;; on the context where it is typed in. ;; on the context where it is typed in.
(define (insert-paren text) (define (insert-paren text)
(let* ([pos (send text get-start-position)] (let* ([pos (send text get-start-position)]
[change-to [real-char #\[]
(λ (c) [change-to (λ (c) (set! real-char c))]
(send text insert c pos (+ pos 1)))]) [start-pos (send text get-start-position)]
(send text begin-edit-sequence) [end-pos (send text get-end-position)])
(send text insert #\[ pos (send text get-end-position)) (send text begin-edit-sequence #f #f)
(send text insert "[" start-pos 'same #f)
(when (eq? (send text classify-position pos) 'parenthesis) (when (eq? (send text classify-position pos) 'parenthesis)
(let* ([before-whitespace-pos (send text skip-whitespace pos 'backward #t)] (let* ([before-whitespace-pos (send text skip-whitespace pos 'backward #t)]
[backward-match (send text backward-match before-whitespace-pos 0)]) [backward-match (send text backward-match before-whitespace-pos 0)])
@ -1320,7 +1321,9 @@
(change-to #\()]))] (change-to #\()]))]
[else [else
(change-to #\()])))) (change-to #\()]))))
(send text end-edit-sequence))) (send text delete pos (+ pos 1) #f)
(send text end-edit-sequence)
(send text insert real-char start-pos end-pos)))
;; beginning-of-sequence? : text number -> boolean ;; beginning-of-sequence? : text number -> boolean
;; determines if this position is at the beginning of a sequence ;; determines if this position is at the beginning of a sequence