something on a screen that isn't visible.
;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/curren.scm,v 1.95 1992/02/08 15:23:26 cph Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/curren.scm,v 1.96 1992/02/11 19:01:11 cph Exp $
;;;
;;; Copyright (c) 1986, 1989-92 Massachusetts Institute of Technology
;;;
(without-interrupts
(lambda ()
(if (selected-screen? screen)
- (let ((screen* (other-screen screen)))
- (if (not screen*)
- (error "can't delete only screen" screen))
- (select-screen screen*)))
+ (select-screen
+ (or (other-screen screen false)
+ (other-screen screen true)
+ (error "Can't delete only screen:" screen))))
(screen-discard! screen)
(set-editor-screens! current-editor
(delq! screen
(else
screen)))
-(define (other-screen screen)
- (let ((screen*
- (let loop ((screen* screen))
- (let ((screen* (screen1+ screen*)))
- (cond ((eq? screen* screen)
- (screen1+ screen*))
- ((screen-visible? screen*)
- screen*)
- (else
- (loop screen*)))))))
- (and (not (eq? screen screen*))
- screen*)))
+(define (other-screen screen invisible-ok?)
+ (let loop ((screen* screen))
+ (let ((screen* (screen1+ screen*)))
+ (cond ((eq? screen* screen)
+ false)
+ ((or invisible-ok? (screen-visible? screen*))
+ screen*)
+ (else
+ (loop screen*))))))
\f
;;;; Windows
(screen-select-cursor! (window-screen window) window))
(define (window-visible? window)
+ (and (window-live? window)
+ (screen-visible? (window-screen window))))
+
+(define (window-live? window)
(or (typein-window? window)
(let ((window0 (window0)))
(let loop ((window* (window1+ window0)))
;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/wincom.scm,v 1.109 1992/02/04 04:04:41 cph Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/wincom.scm,v 1.110 1992/02/11 19:01:15 cph Exp $
;;;
;;; Copyright (c) 1987, 1989-92 Massachusetts Institute of Technology
;;;
(let ((window (current-window)))
(if (and (window-has-no-neighbors? window)
(use-multiple-screens?)
- (other-screen (selected-screen)))
+ (other-screen (selected-screen) false))
(delete-screen! (selected-screen))
(window-delete! window)))))
(let ((window (other-window n)))
(if (current-window? window)
(and (use-multiple-screens?)
- (let ((screen (other-screen (selected-screen))))
+ (let ((screen (other-screen (selected-screen) false)))
(and screen
(screen-selected-window screen))))
window))))
(define (select-buffer-other-screen buffer)
(if (multiple-screens?)
(select-screen
- (let ((screen (other-screen (selected-screen))))
+ (let ((screen (other-screen (selected-screen) false)))
(if screen
(begin
(select-buffer-in-window buffer (screen-selected-window screen))
(if window
(begin
(set! *previous-popped-up-window* (object-hash false))
- (if (and (window-visible? window)
+ (if (and (window-live? window)
(not (window-has-no-neighbors? window)))
(window-delete! window)))))
(let ((buffer (object-unhash *previous-popped-up-buffer*)))
(if (< (ref-variable split-height-threshold) limit)
(set-variable! split-height-threshold limit))
(cond ((and (use-multiple-screens?)
- (other-screen (selected-screen)))
+ (other-screen (selected-screen) false))
=>
(lambda (screen)
(pop-into-window (screen-selected-window screen))))
window
(loop (window1+ window)))))))
(and (use-multiple-screens?)
- (or (let ((screen (other-screen (selected-screen))))
+ (or (let ((screen (other-screen (selected-screen) false)))
(and screen
(list-search-positive (screen-window-list screen)
(lambda (window)
;;; -*-Scheme-*-
;;;
-;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/xterm.scm,v 1.26 1992/02/08 15:23:45 cph Exp $
+;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/xterm.scm,v 1.27 1992/02/11 19:01:23 cph Exp $
;;;
;;; Copyright (c) 1989-92 Massachusetts Institute of Technology
;;;
(lambda (screen event)
event
(if (not (screen-deleted? screen))
- (if (other-screen screen)
+ (if (other-screen screen true)
(delete-screen! screen)
(begin
(save-buffers-kill-edwin)
(begin
(set-screen-visibility! screen 'INVISIBLE)
(if (selected-screen? screen)
- (let ((screen (other-screen screen)))
+ (let ((screen (other-screen screen false)))
(if screen
(select-screen screen))))))))