;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/buffrm.scm,v 1.40 1991/05/10 22:18:47 cph Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/buffrm.scm,v 1.41 1992/03/13 10:52:38 cph Exp $
;;;
-;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology
+;;; Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology
;;;
;;; This material was developed by the Scheme project at the
;;; Massachusetts Institute of Technology, Department of
(define-method buffer-frame (:update-display! window screen x-start y-start
xl xu yl yu display-style)
;; Assumes that interrupts are disabled.
- (and (update-inferior! text-inferior screen x-start y-start
- xl xu yl yu display-style
- buffer-window:update-display!)
- (if modeline-inferior
- (update-inferior! modeline-inferior screen x-start y-start
- xl xu yl yu display-style
- modeline-window:update-display!)
- true)
- (update-inferior! border-inferior screen x-start y-start
- xl xu yl yu display-style
- vertical-border-window:update-display!)))
+ (if (or display-style (inferior-needs-redisplay? text-inferior))
+ (update-inferior! text-inferior screen x-start y-start
+ xl xu yl yu display-style
+ buffer-window:update-display!))
+ (if (and modeline-inferior
+ (or display-style (inferior-needs-redisplay? modeline-inferior)))
+ (update-inferior! modeline-inferior screen x-start y-start
+ xl xu yl yu display-style
+ modeline-window:update-display!))
+ (if (or display-style (inferior-needs-redisplay? border-inferior))
+ (update-inferior! border-inferior screen x-start y-start
+ xl xu yl yu display-style
+ vertical-border-window:update-display!))
+ true)
(define (initial-modeline! frame modeline?)
;; **** Kludge: The text-inferior will generate modeline events, so
(define (window-modeline-event! frame type)
(with-instance-variables buffer-frame frame (type)
(if modeline-inferior
- (=> (inferior-window modeline-inferior) :event! type)))
+ (modeline-window:event! (inferior-window modeline-inferior) type)))
(screen-modeline-event! (window-screen frame) frame type))
\f
(define-integrable (window-override-message window)
;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/bufwin.scm,v 1.295 1991/05/18 03:25:34 cph Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/bufwin.scm,v 1.296 1992/03/13 10:52:39 cph Exp $
;;;
-;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology
+;;; Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology
;;;
;;; This material was developed by the Scheme project at the
;;; Massachusetts Institute of Technology, Department of
(if (%window-override-string window)
(update-override-string! window screen x-start y-start xl xu yl yu)
(update-outlines! window))
- (and (update-inferior! (%window-blank-inferior window)
- screen x-start y-start xl xu yl yu display-style
- blank-window:update-display!)
- (update-inferior! (%window-cursor-inferior window)
- screen x-start y-start xl xu yl yu display-style
- cursor-window:update-display!)))
+ (let ((inferior (%window-blank-inferior window)))
+ (if (or display-style (inferior-needs-redisplay? inferior))
+ (update-inferior! inferior screen x-start y-start
+ xl xu yl yu display-style
+ blank-window:update-display!)))
+ (let ((inferior (%window-cursor-inferior window)))
+ (if (or display-style (inferior-needs-redisplay? inferior))
+ (update-inferior! inferior screen x-start y-start
+ xl xu yl yu display-style
+ cursor-window:update-display!)))
+ true)
(define (buffer-window/redraw! window)
(if (%window-debug-trace window)
;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/modwin.scm,v 1.38 1991/07/02 18:56:18 cph Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/modwin.scm,v 1.39 1992/03/13 10:52:39 cph Exp $
;;;
-;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology
+;;; Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology
;;;
;;; This material was developed by the Scheme project at the
;;; Massachusetts Institute of Technology, Department of
true
boolean?)
-(define-method modeline-window (:event! window type)
+(define (modeline-window:event! window type)
type ;ignored
- (setup-redisplay-flags! redisplay-flags))
\ No newline at end of file
+ (with-instance-variables modeline-window window ()
+ (setup-redisplay-flags! redisplay-flags)))
\ No newline at end of file
;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/window.scm,v 1.154 1991/03/16 00:03:11 cph Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/window.scm,v 1.155 1992/03/13 10:52:40 cph Exp $
;;;
-;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology
+;;; Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology
;;;
;;; This material was developed by the Scheme project at the
;;; Massachusetts Institute of Technology, Department of
(car (window-redisplay-flags window)))
(define-integrable (window-needs-redisplay! window)
- (setup-redisplay-flags! (window-redisplay-flags window)))
+ (if (not (car (window-redisplay-flags window)))
+ (setup-redisplay-flags! (window-redisplay-flags window))))
(define-integrable (window-inferior? window window*)
(find-inferior? (window-inferiors window) window*))
display-style)
(update-inferiors! (window-inferiors window) screen x-start y-start
xl xu yl yu display-style
- (let ((halt-update? (editor-halt-update? current-editor)))
- (lambda (window screen x-start y-start xl xu yl yu display-style)
- (and (or display-style (not (halt-update?)))
- (=> window :update-display! screen x-start y-start xl xu yl yu
- display-style))))))
+ (lambda (window screen x-start y-start xl xu yl yu display-style)
+ (and (or display-style (not ((editor-halt-update? current-editor))))
+ (=> window :update-display! screen x-start y-start xl xu yl yu
+ display-style)))))
(define (update-inferiors! inferiors screen x-start y-start xl xu yl yu
display-style updater)
(let loop ((inferiors inferiors))
(if (null? inferiors)
true
- (and (update-inferior! (car inferiors) screen x-start y-start
- xl xu yl yu display-style updater)
+ (and (or (not (or display-style
+ (inferior-needs-redisplay? (car inferiors))))
+ (update-inferior! (car inferiors) screen x-start y-start
+ xl xu yl yu display-style updater))
(loop (cdr inferiors))))))
(define (update-inferior! inferior screen x-start y-start xl xu yl yu
display-style updater)
+ ;; Assumes (OR DISPLAY-STYLE (INFERIOR-NEEDS-REDISPLAY? INFERIOR))
(let ((window (inferior-window inferior))
(xi (inferior-x-start inferior))
- (yi (inferior-y-start inferior))
- (flags (inferior-redisplay-flags inferior)))
+ (yi (inferior-y-start inferior)))
(and (or (not xi)
- (not (or display-style (car flags)))
(clip-window-region-1 (fix:- xl xi)
(fix:- xu xi)
(window-x-size window)
screen (fix:+ x-start xi) (fix:+ y-start yi)
xl xu yl yu display-style))))))
(begin
- (set-car! flags false)
+ (set-car! (inferior-redisplay-flags inferior) false)
true))))
+(declare (integrate-operator clip-window-region-1))
(define (clip-window-region-1 al au bs receiver)
+ (declare (integrate al au bs))
(if (fix:< 0 al)
(if (fix:< au bs)
(if (fix:< al au) (receiver al au) true)
(define (inferior-needs-redisplay! inferior)
(if (and (inferior-x-start inferior) (inferior-y-start inferior))
- (setup-redisplay-flags! (inferior-redisplay-flags inferior))
+ (if (not (car (inferior-redisplay-flags inferior)))
+ (setup-redisplay-flags! (inferior-redisplay-flags inferior)))
(set-car! (inferior-redisplay-flags inferior) false)))
(define (setup-redisplay-flags! flags)