(FILECREATED "17-Nov-87 20:27:04" {PHYLUM}<CAMERON>LISP>INVISIBLEWINDOW.;2 3151   

      changes to:  (VARS INVISIBLEWINDOWCOMS)
                   (FNS WHICHW)
                   (PROPS (INVISIBLEWINDOW MAKEFILE-ENVIRONMENT))

      previous date: " 9-Dec-86 18:05:20" {FS7:PARC:XEROX}<CAMERON>LISP>INVISIBLEWINDOW.;1)


(* "
Copyright (c) 1986, 1987 by Andrew J Cameron, III and Xerox Corporation.  All rights reserved.
")

(PRETTYCOMPRINT INVISIBLEWINDOWCOMS)

(RPAQQ INVISIBLEWINDOWCOMS ((* Original Author: Unknown)
                            (* Modifications by: Andrew J. Cameron, III)
                            (*)
                            (PROP MAKEFILE-ENVIRONMENT INVISIBLEWINDOW)
                            (* Get record definitions required for redefinition of WHICHW.)
                            (DECLARE: EVAL@LOAD EVAL@COMPILE DONTCOPY (FILES (LOADCOMP)
                                                                             WINDOW))
                            (* Save original definiton of WHICHW for poossible later recovery.)
                            (P (LET [(TEMP (GENSYM (QUOTE WHICHW]
                                    (PUTD TEMP (GETD (QUOTE WHICHW)))
                                    (PRINTOUT T "Original WHICHW definition stored on " TEMP "." T)))
                            (* Redefine WHICHW to inplement invisible windows.)
                            (FNS WHICHW)))



(* Original Author: Unknown)




(* Modifications by: Andrew J. Cameron, III)




(*)


(PUTPROPS INVISIBLEWINDOW MAKEFILE-ENVIRONMENT (PACKAGE "INTERLISP" READTABLE "OLD-INTERLISP-FILE"))



(* Get record definitions required for redefinition of WHICHW.)

(DECLARE: EVAL@LOAD EVAL@COMPILE DONTCOPY 
(FILESLOAD (LOADCOMP)
       WINDOW)
)



(* Save original definiton of WHICHW for poossible later recovery.)

(LET [(TEMP (GENSYM (QUOTE WHICHW]
     (PUTD TEMP (GETD (QUOTE WHICHW)))
     (PRINTOUT T "Original WHICHW definition stored on " TEMP "." T))



(* Redefine WHICHW to inplement invisible windows.)

(DEFINEQ

(WHICHW
  [LAMBDA (X Y SCREEN)                                     (* ; "Edited 17-Nov-87 19:53 by andyiii")
          
          (* ;; "This redefinition of WHICHW adds the feature that if a window has an INVISIBLE T window property, the window manager won't see it unless the meta-key is down.")

    (SETQ SCREEN (\INSURESCREEN SCREEN))
    (COND
       ((POSITIONP X)
        (WHICHW (fetch (POSITION XCOORD) of X)
               (fetch (POSITION YCOORD) of X)
               SCREEN))
       (T (for (WINDOW ← (fetch (SCREEN SCTOPW) of SCREEN)) by (fetch (WINDOW NEXTW) of WINDOW)
             while WINDOW thereis (AND (INSIDE? (fetch (WINDOW REG) of WINDOW)
                                              X Y)
                                       (OR (NOT (WINDOWPROP WINDOW (QUOTE INVISIBLE)))
                                           (SHIFTDOWNP (QUOTE META])
)
(PUTPROPS INVISIBLEWINDOW COPYRIGHT ("Andrew J Cameron, III and Xerox Corporation" 1986 1987))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (2076 3034 (WHICHW 2086 . 3032)))))
STOP