Add hook for user action when new screen is created.
authorChris Hanson <org/chris-hanson/cph>
Tue, 7 Feb 1995 23:51:22 +0000 (23:51 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 7 Feb 1995 23:51:22 +0000 (23:51 +0000)
v7/src/edwin/curren.scm

index 9be833af85f1c23a2669fee4dfdb6c66d205a441..2eecf99e57f7a50c0e72f7e4ac1376e9b7028bb2 100644 (file)
@@ -1,8 +1,8 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Id: curren.scm,v 1.112 1994/05/13 20:26:58 cph Exp $
+;;;    $Id: curren.scm,v 1.113 1995/02/07 23:51:22 cph Exp $
 ;;;
-;;;    Copyright (c) 1986, 1989-93 Massachusetts Institute of Technology
+;;;    Copyright (c) 1986, 1989-95 Massachusetts Institute of Technology
 ;;;
 ;;;    This material was developed by the Scheme project at the
 ;;;    Massachusetts Institute of Technology, Department of
         (set-editor-screens! current-editor
                              (append! (editor-screens current-editor)
                                       (list screen)))
+        (event-distributor/invoke!
+         (variable-default-value (ref-variable-object screen-creation-hook))
+         screen)
         (update-screen! screen false)
         screen)))))
 
+(define-variable screen-creation-hook
+  "An event distributor that is invoked when a screen is created.
+The new screen passed as its argument.
+The screen is guaranteed to be deselected at that time."
+  (make-event-distributor))
+
 (define (delete-screen! screen)
   (without-interrupts
    (lambda ()
   (for-each (lambda (hook) (hook buffer))
            (get-buffer-hooks buffer 'SELECT-BUFFER-HOOKS))
   (if (not (minibuffer? buffer))
-      (event-distributor/invoke! (ref-variable select-buffer-hook) buffer)))
+      (event-distributor/invoke!
+       (variable-default-value (ref-variable-object select-buffer-hook))
+       buffer)))
 
 (define-integrable (add-select-buffer-hook buffer hook)
   (add-buffer-hook buffer 'SELECT-BUFFER-HOOKS hook))