workaround for duplicate text-field% events

svn: r12640
This commit is contained in:
Greg Cooper 2008-11-29 21:47:37 +00:00
parent 333e0702c9
commit 1e67e2fda7

View File

@ -1,7 +1,6 @@
(module mixin-macros frtime (module mixin-macros frtime
(require mzlib/class) (require mzlib/class)
(define-syntax events->callbacks (define-syntax events->callbacks
(lambda (stx) (lambda (stx)
(syntax-case stx (carries-args-for) (syntax-case stx (carries-args-for)
@ -47,10 +46,14 @@
(define name-e (event-receiver)) (define name-e (event-receiver))
(define processed-events (processor name-e)) (define processed-events (processor name-e))
(super-new) (super-new)
(define ft-last-evt #f)
;what about when the super call returns an error? ;what about when the super call returns an error?
(define/override method-name (define/override method-name
(lambda args (lambda args
(send-event name-e args) (when (or (< (length args) 2)
(and (not (eq? (cadr args) ft-last-evt))
(set! ft-last-evt (cadr args))))
(send-event name-e args))
(super method-name . args))) (super method-name . args)))
(define/public (g-name) processed-events))))]))) (define/public (g-name) processed-events))))])))