;;; -*-Scheme-*-
;;;
-;;; $Id: buffrm.scm,v 1.51 1996/05/14 01:24:05 cph Exp $
+;;; $Id: buffrm.scm,v 1.52 1998/02/01 05:11:35 cph Exp $
;;;
-;;; Copyright (c) 1986, 1989-96 Massachusetts Institute of Technology
+;;; Copyright (c) 1986, 1989-98 Massachusetts Institute of Technology
;;;
;;; This material was developed by the Scheme project at the
;;; Massachusetts Institute of Technology, Department of
configuration)))
(if window
(weak-set-car! *minibuffer-scroll-window*
- (convert-window window)))))))))
\ No newline at end of file
+ (convert-window window)))))))))
+\f
+(define (with-saved-configuration thunk)
+ (let ((screen (selected-screen)))
+ (let ((configuration (screen-window-configuration screen)))
+ (fluid-let ((restore-saved-continuation? #t))
+ (dynamic-wind
+ (lambda () unspecific)
+ thunk
+ (lambda ()
+ (if restore-saved-continuation?
+ (set-screen-window-configuration! screen configuration))))))))
+
+(define (dont-restore-saved-configuration)
+ ;; This conditional will signal an error if this procedure is called
+ ;; outside the dynamic context of WITH-SAVED-CONFIGURATION.
+ (if restore-saved-continuation?
+ (set! restore-saved-continuation? #f))
+ unspecific)
+
+(define restore-saved-continuation?)
\ No newline at end of file
#| -*-Scheme-*-
-$Id: edwin.pkg,v 1.219 1998/01/29 06:05:35 cph Exp $
+$Id: edwin.pkg,v 1.220 1998/02/01 05:12:21 cph Exp $
Copyright (c) 1989-98 Massachusetts Institute of Technology
display-style/ignore-input?
display-style/ignore-redisplay-flags?
display-style/no-screen-output?
+ dont-restore-saved-configuration
edwin-variable$cursor-centering-point
edwin-variable$mode-line-inverse-video
edwin-variable$scroll-step
window-select-time
window-set-override-message!
window-start-mark
- window-y-center)
+ window-y-center
+ with-saved-configuration)
(export (edwin screen)
editor-frame-screen
editor-frame-select-cursor!