[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

x-window-system bugs



I have started using the x server supplied on slug tape3.   The first
bug I fixed caused a nasty hang when you brought up a pop up menu.  It
was caused by a coubple of arguments being reversed when the state and
mask were saved.   I have included the patch I made to fix the bug.

Is this the proper mailing list for such information?   If not please
point me to the right one.

;;; -*- Mode: LISP; Syntax: Common-Lisp; Package: X; Base: 10; Patch-File: T -*-
;;; Patch file for X-WINDOWS version 1.1
;;; Reason: Function (FLAVOR:METHOD :GRAB-MOUSE X:SERVER-ROOT):  Changed order of arguments in multiple-value-setq to keep system from hanging up when popping up a menu.
;;; Written by Mac, 4/06/88 15:18:36
;;; while running on Mac's Color System from FEP0:>Inc-CAD-7-1-F-Cad-Color-Base.LOAD.1
;;; with Genera 7.1, World Maker 2.0, IP-TCP 52.16, Genera 7.1 Patches 1.9,
;;; Genera 7.1 Miscellaneous Patches 1.11, MCC Electric Lisp Mode 5.1,
;;; Homebrew CAD Extensions 4.0, CAD ZWEI Extensions 3.0, Color 331.5,
;;; Color Support 11.4, Genera 7.1 Color Patches 1.1, Experimental X Windows 1.0,
;;; microcode 3600-MIC 396, FEP 127, FEP0:>v127-lisp.flod(55),
;;; FEP0:>v127-loaders.flod(55), FEP0:>v127-debug.flod(34), FEP0:>v127-info.flod(55),
;;; Support for Apollo ESC sequence to find out how big the telnet window is. (from SUN:HOME;SZ.LISP.NEWEST),
;;; Multiple Console Activity System (from X-WINDOWS:X;ACTIVITY-PATCH.LISP.2),
;;; Make document examiner work with X fonts. (from X-WINDOWS:X;DEX-PATCH.LISP.2).



;=====================================
(SYSTEM-INTERNALS:BEGIN-PATCH-SECTION)
(SYSTEM-INTERNALS:PATCH-SECTION-SOURCE-FILE "X-WINDOWS:X;SRVFLV.LISP.2")
(SYSTEM-INTERNALS:PATCH-SECTION-ATTRIBUTES
  "-*- Base: 10; Package: X-WINDOW-SYSTEM; Mode: LISP; Syntax: Common-lisp; Lowercase: T -*-")


(defmethod (:grab-mouse server-root) (state curs win mask)
  (without-interrupts
    (when (and (or (and (null grab-state) (null tv:window-owning-mouse))
		   (eq grab-state state)))
      (unless (eq grab-window self)
	(if (null grab-state)
	    (multiple-value-setq (save-mask save-state) (send win :set-event-mask mask state))
	    (send win :set-event-mask mask state)))
      (setq grab-state state)
      (setq grab-cursor curs)
      (setq grab-window win)
      (setq grab-mask (logand mask (lognot (logior EnterWindow LeaveWindow))))
      (setq tv:window-owning-mouse self)
      (setq tv:mouse-reconsider t))))


  -- Wilson M. Michaels