..
original commit: b50f69dbd9101a26e28f1b7891c3a056d282ecdb
This commit is contained in:
parent
619dd4c842
commit
38f968bc27
|
@ -754,7 +754,7 @@
|
|||
[define label ""]
|
||||
[define label-prefix (application:current-app-name)]
|
||||
(define (do-label)
|
||||
(super-set-label (get-entire-label))
|
||||
(super-set-label (gui-utils:trim-string (get-entire-label) 200))
|
||||
(send (group:get-the-frame-group) frame-label-changed this))
|
||||
|
||||
(public get-entire-label get-label-prefix set-label-prefix)
|
||||
|
|
|
@ -112,7 +112,8 @@
|
|||
(for-each
|
||||
(lambda (frame)
|
||||
(let ([frame (frame-frame frame)])
|
||||
(make-object menu-item% (get-name frame)
|
||||
(make-object menu-item%
|
||||
(gui-utils:trim-string (get-name frame) 200)
|
||||
menu
|
||||
(lambda (_1 _2)
|
||||
(send frame show #t)))))
|
||||
|
@ -301,7 +302,7 @@
|
|||
[(d) (make-object dialog% (string-constant bring-frame-to-front) parent 400 600)]
|
||||
[(lb) (instantiate list-box% ()
|
||||
(label #f)
|
||||
(choices (map (lambda (x) (send x get-label)) sorted-frames))
|
||||
(choices (map (lambda (x) (gui-utils:trim-string (send x get-label) 200)) sorted-frames))
|
||||
(callback (lambda (x y) (listbox-callback y)))
|
||||
(parent d))]
|
||||
[(t) (instantiate text:hide-caret/selection% ())]
|
||||
|
|
|
@ -560,13 +560,13 @@
|
|||
res))))
|
||||
|
||||
(rename [super-on-paint on-paint])
|
||||
(inherit get-canvas)
|
||||
(inherit get-canvases get-active-canvas has-focus?)
|
||||
(define/override (on-paint before? dc left top right bottom dx dy draw-caret?)
|
||||
(super-on-paint before? dc left top right bottom dx dy draw-caret?)
|
||||
(unless before?
|
||||
(let ([canvas (get-canvas)])
|
||||
(when canvas
|
||||
(send (send canvas get-top-level-window) delegate-moved)))))
|
||||
(let ([active-canvas (get-active-canvas)])
|
||||
(when active-canvas
|
||||
(send (send active-canvas get-top-level-window) delegate-moved)))))
|
||||
|
||||
(rename [super-on-edit-sequence on-edit-sequence])
|
||||
(define/override (on-edit-sequence)
|
||||
|
@ -658,12 +658,16 @@
|
|||
(run-after-edit-sequence
|
||||
(rec from-enqueue-for-frame
|
||||
(lambda ()
|
||||
(let ([canvas (get-canvas)])
|
||||
(when canvas
|
||||
(let ([frame (send canvas get-top-level-window)])
|
||||
(when (is-a? frame frame:text-info<%>)
|
||||
(call-method frame)))))))
|
||||
(call-with-frame call-method)))
|
||||
tag))
|
||||
|
||||
(define (call-with-frame call-method)
|
||||
(let ([canvas (get-canvas)])
|
||||
(when canvas
|
||||
(let ([frame (send canvas get-top-level-window)])
|
||||
(when (is-a? frame frame:text-info<%>)
|
||||
(call-method frame))))))
|
||||
|
||||
(override set-anchor set-overwrite-mode after-set-position after-insert after-delete)
|
||||
(define (set-anchor x)
|
||||
(super-set-anchor x)
|
||||
|
@ -677,28 +681,29 @@
|
|||
'framework:overwrite-status-changed))
|
||||
(define (after-set-position)
|
||||
(super-after-set-position)
|
||||
(enqueue-for-frame
|
||||
(lambda (x) (send x editor-position-changed))
|
||||
'framework:editor-position-changed))
|
||||
(maybe-queue-editor-position-update))
|
||||
|
||||
;; maybe-queue-editor-position-update : -> void
|
||||
;; updates the editor-position in the frame,
|
||||
;; but delays it until the next low-priority event occurs.
|
||||
(field (callback-running? #f))
|
||||
(define/private (maybe-queue-editor-position-update)
|
||||
(unless callback-running?
|
||||
(set! callback-running? #t)
|
||||
(queue-callback
|
||||
(lambda ()
|
||||
(call-with-frame
|
||||
(lambda (frame)
|
||||
(send frame editor-position-changed)))
|
||||
(set! callback-running? #f))
|
||||
#f)))
|
||||
|
||||
(define (after-insert start len)
|
||||
(super-after-insert start len)
|
||||
(enqueue-for-frame
|
||||
(lambda (x)
|
||||
(unless callback-running?
|
||||
(set! callback-running? #t)
|
||||
(queue-callback
|
||||
(lambda ()
|
||||
(send x editor-position-changed)
|
||||
(set! callback-running? #f))
|
||||
#f)))
|
||||
'framework:editor-position-changed))
|
||||
(maybe-queue-editor-position-update))
|
||||
(define (after-delete start len)
|
||||
(super-after-delete start len)
|
||||
(enqueue-for-frame
|
||||
(lambda (x) (send x editor-position-changed))
|
||||
'framework:editor-position-changed))
|
||||
(maybe-queue-editor-position-update))
|
||||
(super-instantiate ())))
|
||||
|
||||
(define clever-file-format<%> (interface ((class->interface text%))))
|
||||
|
|
Loading…
Reference in New Issue
Block a user