;;; -*- Mode:Lisp; Readtable:T; Package:USER; Base:8; Patch-File:T -*-
;;; Private patches made by NICK
;;; Reason:
;;;  Changed the caller of :who-line-documentation-string methods to use equal instead of neq.
;;; Reason:
;;;  This avoids the irritating re-display of the mouse-doc line unless it is really necessary,
;;; Reason:
;;;  and probably should be made permanent.
;;; Written 29-Sep-85 02:14:38 by NICK,
;;; while running on Lambda A from band 3
;;; with System 102.158, Local-File 56.11, FILE-Server 13.2, Unix-Interface 5.6, MagTape 40.22, ZMail 57.10, Tiger 20.6, KERMIT 26.20, MEDIUM-RESOLUTION-COLOR 17.4, Experimental Sited 1.0, Experimental window-maker 1.0, Experimental TCP-Kernel 30.0, Experimental TCP-User 57.0, Experimental TCP-Server 33.0, microcode 768, chaos/tcp loaded.



; From file WHOLIN.LISP#> QL.WINDOW; LMI: (91)
#8R TV#:
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "TV")))
  (COMPILER#:PATCH-SOURCE-FILE "LMI: QL.WINDOW; WHOLIN.#"

(DEFUN WHO-LINE-DOCUMENTATION-FUNCTION (WHO-SHEET)
  (DECLARE (:SELF-FLAVOR WHO-LINE-SHEET))
  (LET* ((W MOUSE-WINDOW)
	 (NEW-STATE
	   (COND (LOCKED-ERROR-WINDOWS
		  ;; To attract attention, make this message blink.
		  (LET ((MSG
			  "*** Background error with window locked; try Terminal C-M-Clear-Input or Terminal Call ***")
			(MSG1
			  "    Background error with window locked; try Terminal C-M-Clear-Input or Terminal Call"))
		    (IF (EQ WHO-LINE-ITEM-STATE MSG)
			MSG1 MSG)))
		 (PENDING-NOTIFICATIONS
		  (LET ((MSG
			  "***** Notifications are pending.  Terminal N is one way to see them. *****")
			(MSG1
			  "      Notifications are pending.  Terminal N is one way to see them."))
		    (IF (EQ WHO-LINE-ITEM-STATE MSG)
			MSG1 MSG)))
		 ((SYMBOLP W)
		  (AND W WHO-LINE-MOUSE-GRABBED-DOCUMENTATION))
		 (T
		  (MULTIPLE-VALUE-BIND (DOC ERROR)
		      (CATCH-ERROR (SEND W ':WHO-LINE-DOCUMENTATION-STRING)
				   NIL)
		    (IF ERROR "Error getting documentation string" DOC))))))
    (COND ((Not (EQual WHO-LINE-ITEM-STATE NEW-STATE))
	   (SETQ WHO-LINE-ITEM-STATE NEW-STATE)
	   (SHEET-CLEAR WHO-SHEET)
	   (IF (TYPEP NEW-STATE 'STRING)
	       (SHEET-STRING-OUT WHO-SHEET NEW-STATE
				 0 (MIN (OR (STRING-SEARCH-CHAR #/NEWLINE NEW-STATE)
					    (STRING-LENGTH NEW-STATE))
					(TRUNCATE (SHEET-INSIDE-WIDTH WHO-SHEET)
						  (SHEET-CHAR-WIDTH WHO-SHEET))))
	     (SHEET-STRING-OUT WHO-SHEET "Click right to get the System Menu."))))))

))
