From: Chris Hanson Date: Tue, 14 May 1996 01:44:28 +0000 (+0000) Subject: Change DISPLAY-STYLE in order to orthogonalize the effects that it can X-Git-Tag: 20090517-FFI~5520 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=de15a8ecfc52e17bcdecd1878ee382c0c41e035b;p=mit-scheme.git Change DISPLAY-STYLE in order to orthogonalize the effects that it can have. New design allows each of the different style effects to be selected separately. --- diff --git a/v7/src/edwin/edtfrm.scm b/v7/src/edwin/edtfrm.scm index eedb68d73..6a8f84baf 100644 --- a/v7/src/edwin/edtfrm.scm +++ b/v7/src/edwin/edtfrm.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: edtfrm.scm,v 1.88 1995/01/06 01:02:39 cph Exp $ +;;; $Id: edtfrm.scm,v 1.89 1996/05/14 01:44:28 cph Exp $ ;;; ;;; Copyright (c) 1985, 1989-95 Massachusetts Institute of Technology ;;; @@ -88,9 +88,8 @@ ((eq? window start)) (notice-window-changes! window))) (with-instance-variables editor-frame window (display-style) - (if (and (not display-style) - (not (car redisplay-flags))) - true + (or (not (or (display-style/ignore-redisplay-flags? display-style) + (car redisplay-flags))) (let ((finished? (window-update-display! window screen 0 0 0 x-size 0 y-size display-style))) diff --git a/v7/src/edwin/edwin.pkg b/v7/src/edwin/edwin.pkg index 1ad5e32f4..796895ee1 100644 --- a/v7/src/edwin/edwin.pkg +++ b/v7/src/edwin/edwin.pkg @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: edwin.pkg,v 1.195 1996/05/12 02:19:09 cph Exp $ +$Id: edwin.pkg,v 1.196 1996/05/14 01:43:50 cph Exp $ Copyright (c) 1989-96 Massachusetts Institute of Technology @@ -299,6 +299,10 @@ MIT in each case. |# "edtfrm") (parent (edwin)) (export (edwin) + display-style/discard-screen-contents? + display-style/ignore-input? + display-style/ignore-redisplay-flags? + display-style/screen-output? edwin-variable$cursor-centering-point edwin-variable$mode-line-inverse-video edwin-variable$scroll-step diff --git a/v7/src/edwin/screen.scm b/v7/src/edwin/screen.scm index 3fe491a1e..4b2efdf59 100644 --- a/v7/src/edwin/screen.scm +++ b/v7/src/edwin/screen.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: screen.scm,v 1.107 1996/03/06 07:04:10 cph Exp $ +;;; $Id: screen.scm,v 1.108 1996/05/14 01:44:18 cph Exp $ ;;; ;;; Copyright (c) 1989-96 Massachusetts Institute of Technology ;;; @@ -172,7 +172,7 @@ (eq? 'DELETED (screen-visibility screen))) (define (update-screen! screen display-style) - (if (and display-style (not (eq? 'NO-OUTPUT display-style))) + (if (display-style/discard-screen-contents? display-style) (screen-force-update screen)) (let ((finished? (with-screen-in-update screen display-style @@ -651,7 +651,8 @@ (and (thunk) (if (screen-visible? screen) (and (or (not (screen-needs-update? screen)) - (and (not (eq? 'NO-OUTPUT display-style)) + (and (display-style/screen-output? + display-style) (screen-update screen display-style))) (begin (screen-update-cursor screen) diff --git a/v7/src/edwin/vc.scm b/v7/src/edwin/vc.scm index 99ab0e4d7..253e68fb7 100644 --- a/v7/src/edwin/vc.scm +++ b/v7/src/edwin/vc.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: vc.scm,v 1.22 1996/04/24 02:38:08 cph Exp $ +;;; $Id: vc.scm,v 1.23 1996/05/14 01:44:01 cph Exp $ ;;; ;;; Copyright (c) 1994-96 Massachusetts Institute of Technology ;;; @@ -1347,7 +1347,7 @@ the value of vc-log-mode-hook." (point-context (vc-mark-context (buffer-point buffer))) (mark-context (vc-mark-context (buffer-mark buffer)))) (revert-buffer buffer #t dont-confirm?) - (update-screens! 'NO-OUTPUT) + (update-screens! '(IGNORE-INPUT)) (if (null? point-contexts) (let ((m (vc-find-context buffer point-context))) (if m diff --git a/v7/src/edwin/window.scm b/v7/src/edwin/window.scm index 19670b181..c710064b5 100644 --- a/v7/src/edwin/window.scm +++ b/v7/src/edwin/window.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: window.scm,v 1.156 1996/05/14 01:24:18 cph Exp $ +;;; $Id: window.scm,v 1.157 1996/05/14 01:44:11 cph Exp $ ;;; ;;; Copyright (c) 1986, 1989-96 Massachusetts Institute of Technology ;;; @@ -211,7 +211,8 @@ (update-inferiors! (window-inferiors window) 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)))) + (and (or (display-style/ignore-input? display-style) + (not ((editor-halt-update? current-editor)))) (=> window :update-display! screen x-start y-start xl xu yl yu display-style))))) @@ -226,7 +227,8 @@ (define (update-inferior! inferior screen x-start y-start xl xu yl yu display-style updater) - (or (not (or display-style (inferior-needs-redisplay? inferior))) + (or (not (or (display-style/ignore-redisplay-flags? display-style) + (inferior-needs-redisplay? inferior))) (let ((window (inferior-window inferior)) (xi (inferior-x-start inferior)) (yi (inferior-y-start inferior))) @@ -259,6 +261,25 @@ (define (salvage-inferiors! window) (for-each-inferior-window window (lambda (window) (=> window :salvage!)))) + +(define (display-style/discard-screen-contents? display-style) + (if (pair? display-style) + (memq 'DISCARD-SCREEN-CONTENTS display-style) + display-style)) + +(define (display-style/screen-output? display-style) + (or (not (pair? display-style)) + (memq 'SCREEN-OUTPUT display-style))) + +(define (display-style/ignore-redisplay-flags? display-style) + (if (pair? display-style) + (memq 'IGNORE-REDISPLAY-FLAGS display-style) + display-style)) + +(define (display-style/ignore-input? display-style) + (if (pair? display-style) + (memq 'IGNORE-INPUT display-style) + display-style)) ;;;; Standard Methods ;;; All windows support these operations