;;; -*- Mode: Common-Lisp; Package: User; Base: 10.; Patch-File: T -*-
;;; Written 06/15/89 16:06:03 by marky,
;;; Reason: Added code to prevent changing the blinker-offset instance 
;;; variable while on the screen leaving "ghost" blinkers. 
;;; while running on LIBRA from band LODA
;;; With SYSTEM 6.5, VIRTUAL-MEMORY 6.1, EH 6.1, MAKE-SYSTEM 6.0, MICRONET 6.0, LOCAL-FILE 6.0,
;;;  BASIC-PATHNAME 6.0, NETWORK-SUPPORT-COLD 6.0, BASIC-NAMESPACE 6.0, NETWORK-NAMESPACE 6.0,
;;;  DISK-IO 6.0, DISK-LABEL 6.0, BASIC-FILE 6.1, MAC-PATHNAME 6.0, NETWORK-PATHNAME 6.0,
;;;  COMPILER 6.2, TV 6.8, DATALINK 6.0, CHAOSNET 6.0, GC 6.2, MEMORY-AUX 6.0, NVRAM 6.0,
;;;  SYSLOG 6.0, STREAMER-TAPE 6.2, UCL 6.0, INPUT-EDITOR 6.0, METER 6.0, ZWEI 6.1,
;;;  DEBUG-TOOLS 6.0, NETWORK-SUPPORT 6.0, NETWORK-SERVICE 6.0, DATALINK-DISPLAYS 6.0,
;;;  FONT-EDITOR 6.1, SERIAL 6.0, PRINTER 6.1, MAC-PRINTER-TYPES 6.1, PRINTER-TYPES 6.0,
;;;  IMAGEN 6.0, SUGGESTIONS 6.0, MAIL-DAEMON 6.2, MAIL-READER 6.0, TELNET 6.0, VT100 6.0,
;;;  NAMESPACE-EDITOR 6.0, PROFILE 6.1, VISIDOC 6.1, TI-CLOS 6.5, CLEH 6.3, IP 3.46,
;;;  Experimental BUG 11.8, Experimental CLX 6.1, CLUE 6.5, X11M 6.1, MMON 1.0, COLOR-MAP-EDITOR 6.0,
;;;   microcode 429, Band Name: sle 6/5 pathes kill2

;;; SPR 10014 - blinker-offset variabel was added to blinker flavor without
;;; normal with-blinker-ready safeguard - the blinker is not taken off screen
;;; before modifications are made - as is done with most blinker methods. The
;;; result was "ghost" blinkers.

#!C
; From file TVDEFS.LISP#> WINDOW; SYS:
#10R TV#:
(COMPILER-LET ((*PACKAGE* (FIND-PACKAGE "TV"))
                          (SI:*LISP-MODE* :COMMON-LISP)
                          (*READTABLE* COMMON-LISP-READTABLE)
                          (SI:*READER-SYMBOL-SUBSTITUTIONS* SYS::*COMMON-LISP-SYMBOL-SUBSTITUTIONS*))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: WINDOW; TVDEFS.#"



;; may 06/15/89 added
(DEFMACRO BLINKER-SET-OFFSET (BLINKER OFFSET)
  "Set BLINKER's offset to OFFSET."  
  `(SEND ,BLINKER :SET-BLINKER-OFFSET ,OFFSET))

))

#!C
; From file BLINKERS.LISP#> WINDOW; SYS:
#10R TV#:
(COMPILER-LET ((*PACKAGE* (FIND-PACKAGE "TV"))
                          (SI:*LISP-MODE* :COMMON-LISP)
                          (*READTABLE* COMMON-LISP-READTABLE)
                          (SI:*READER-SYMBOL-SUBSTITUTIONS* SYS::*COMMON-LISP-SYMBOL-SUBSTITUTIONS*))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: WINDOW; BLINKERS.#"



;; may 06/15/89 Added to replace default method which did not
;; turn off the blinker before changing the blinker-offset.	             
(defmethod (blinker :set-blinker-offset) (offset)
  (unless (eql blinker-offset offset)
    (with-blinker-ready nil
      (setf blinker-offset offset))))

(DEFMETHOD (BLINKER :RESTORE-DEFAULT-COLORS) ()
  (unless (eql blinker-offset *default-blinker-offset*)	;; may 06/15/89 
    (with-blinker-ready nil				;; may 06/15/89 
      (SETF BLINKER-OFFSET *DEFAULT-BLINKER-OFFSET*))))

))
