diff -ruN guile-gui-0.2-orig/entry-port.scm guile-gui-0.2/entry-port.scm --- guile-gui-0.2-orig/entry-port.scm 2007-08-08 09:36:12.000000000 -0700 +++ guile-gui-0.2/entry-port.scm 2007-08-08 09:45:30.000000000 -0700 @@ -26,7 +26,8 @@ (begin (gtk-entry-select-region entry 0 0) (gtk-entry-set-position entry saved-pos) - (set! saved-pos #f))) + (set! saved-pos #f)) + #f) #f))) ;; This handler runs after insertion and checks whether the last @@ -46,10 +47,14 @@ (begin (set! saved-pos pos) (if (memq 'move-cursor paren-matching-style) - (gtk-entry-set-position entry open-pos)) + (gtk-entry-set-position entry open-pos) + #f) (if (memq 'highlight-region paren-matching-style) - (gtk-entry-select-region entry open-pos pos)) - (gtk-timeout-add 500 restore-text)))))))) + (gtk-entry-select-region entry open-pos pos) + #f) + (gtk-timeout-add 500 restore-text)) + #f)) + #f)))) ;; This handler restores the entry contents early in the event of ;; a key press occurring before the above timer pops. @@ -67,7 +72,8 @@ (or (>= position 0) (set! non-history-line (gtk-entry-get-text entry))) (set! position (+ position 1)) - (gtk-entry-set-text entry (list-ref history position))))) + (gtk-entry-set-text entry (list-ref history position))) + #f)) (define (history-down) (if (>= position 0) @@ -76,7 +82,8 @@ (gtk-entry-set-text entry (if (>= position 0) (list-ref history position) - non-history-line))))) + non-history-line))) + #f)) (gtk-signal-connect entry "key-press-event" @@ -91,7 +98,8 @@ history-down) (else #f))) (if callback - (gtk-signal-emit-stop-by-name entry "key-press-event"))))) + (gtk-signal-emit-stop-by-name entry "key-press-event") + #f)))) (add-hook! (entry-new-read-hook entry) (lambda () @@ -100,6 +108,7 @@ (- (length history) position) position)) (saved-non-history-line non-history-line)) + (set! position -1) (set! handler (lambda () (set! handler saved-handler) diff -ruN guile-gui-0.2-orig/event-loop.scm guile-gui-0.2/event-loop.scm --- guile-gui-0.2-orig/event-loop.scm 2007-08-08 09:36:12.000000000 -0700 +++ guile-gui-0.2/event-loop.scm 2007-08-08 09:44:23.000000000 -0700 @@ -10,7 +10,7 @@ (define (event-loop) (let ((c callback)) (set! callback #f) - (if c (c))) + (if c (c) #f)) (gtk-main-iteration) (event-loop))