[As noted in the Hyperbole documentation, Lucid Emacs modeline event handling
is buggy.  I have figured out how to work around the bugs though so that one
can have complete Hyperbole mouse support under Lucid Emacs.

If you use Lucid Emacs, you can either wait for a new Hyperbole release later
this week or apply the patches below.  Two files are patched.  You must apply
the patches for each file separately.  The files are separated by a few
lines of equal signs.  -- Bob Weiner   <bob_weiner@pts.mot.com>]



*** h-skip-bytec.lsp~	Mon Oct 12 20:07:10 1992
--- h-skip-bytec.lsp	Mon Nov  9 17:19:25 1992
***************
*** 50,56 ****
  Returns arg list including x and y screen coords."
    (and (car args) (listp (car args)) (setq args (car args)))
    (let ((point-set-val (smart-key-set-point args)))
!     (cond (hyperb:lemacs-p (copy-event current-mouse-event))
  	  ((equal hyperb:window-system "apollo") point-set-val)
  	  (t args))))
  
--- 50,60 ----
  Returns arg list including x and y screen coords."
    (and (car args) (listp (car args)) (setq args (car args)))
    (let ((point-set-val (smart-key-set-point args)))
!     (cond (hyperb:lemacs-p
! 	    ;; Modeline clicks return nil for X and Y event positions.
! 	    (if (event-x current-mouse-event)
! 		(copy-event current-mouse-event)
! 	      (read-mouse-position (selected-screen))))
  	  ((equal hyperb:window-system "apollo") point-set-val)
  	  (t args))))
  
===========================================================================
===========================================================================
===========================================================================

*** hui-window.el~	Mon Nov  9 10:16:25 1992
--- hui-window.el	Mon Nov  9 17:29:18 1992
***************
*** 83,89 ****
  (if (not (boundp 'smart-key-mouse-alist))
      (error
        "\"hui-modeln.el\": smart-key-mouse-alist must be defined before loading this.")
!   (or (memq 'sm-mouse-drag-between-windows
  	    (mapcar (function (lambda (elt) (let ((pred (car elt)))
  					      (if (listp pred) (car pred)))))
  		    smart-key-mouse-alist))
--- 83,89 ----
  (if (not (boundp 'smart-key-mouse-alist))
      (error
        "\"hui-modeln.el\": smart-key-mouse-alist must be defined before loading this.")
!   (or (memq 'sm-mouse-drag-window-side
  	    (mapcar (function (lambda (elt) (let ((pred (car elt)))
  					      (if (listp pred) (car pred)))))
  		    smart-key-mouse-alist))
***************
*** 93,105 ****
  		((sm-mouse-drag-window-side) .
  		 ((sm-mouse-resize-window-side) .
  		  (sm-mouse-resize-window-side 'meta)))
! 		((sm-mouse-drag-between-windows) .
! 		 ((sm-mouse-swap-buffers) .
! 		  (sm-mouse-swap-windows 'meta)))
! 		((setq smart-key-value (sm-mouse-drag-horizontally)) .
  		 ((sm-mouse-horizontal) . (sm-mouse-horizontal-meta)))
  		((sm-mouse-depress-in-modeline) .
  		 ((sm-mouse-modeline) . (sm-mouse-modeline-meta)))
  		((sm-mouse-drag-vertically) .
  		 ((sm-split-window-horizontally) .
  		  (sm-split-window-horizontally)))
--- 93,107 ----
  		((sm-mouse-drag-window-side) .
  		 ((sm-mouse-resize-window-side) .
  		  (sm-mouse-resize-window-side 'meta)))
! 		((setq smart-key-value 
! 		       (and (not (sm-mouse-drag-between-windows))
! 			    (sm-mouse-drag-horizontally))) .
  		 ((sm-mouse-horizontal) . (sm-mouse-horizontal-meta)))
  		((sm-mouse-depress-in-modeline) .
  		 ((sm-mouse-modeline) . (sm-mouse-modeline-meta)))
+ 		((sm-mouse-drag-between-windows) .
+ 		 ((sm-mouse-swap-buffers) .
+ 		  (sm-mouse-swap-windows 'meta)))
  		((sm-mouse-drag-vertically) .
  		 ((sm-split-window-horizontally) .
  		  (sm-split-window-horizontally)))
***************
*** 566,572 ****
    "Returns x coordinate in chars from window system dependent ARGS."
    (let ((x (eval (cdr (assoc hyperb:window-system
  			     '(("epoch"  .  (nth 1 args))   ;; Epoch V4
! 			       ("lemacs" .  (event-x args))
  			       ("xterm"  .  (car args))
  			       ("sun"    .  (nth 1 args))
  			       ("next"   .  (nth 1 args))
--- 568,576 ----
    "Returns x coordinate in chars from window system dependent ARGS."
    (let ((x (eval (cdr (assoc hyperb:window-system
  			     '(("epoch"  .  (nth 1 args))   ;; Epoch V4
! 			       ("lemacs" .  (if (eventp args)
! 						(event-x args)
! 					      (car args)))
  			       ("xterm"  .  (car args))
  			       ("sun"    .  (nth 1 args))
  			       ("next"   .  (nth 1 args))
***************
*** 578,584 ****
    "Returns y coordinate in screen lines from window system dependent ARGS."
    (let ((y (eval (cdr (assoc hyperb:window-system
  			     '(("epoch"  .  (nth 2 args))   ;; Epoch V4
! 			       ("lemacs" .  (event-y args))
  			       ("xterm"  .  (nth 1 args))
  			       ("sun"    .  (nth 2 args))
  			       ("next"   .  (nth 2 args))
--- 582,590 ----
    "Returns y coordinate in screen lines from window system dependent ARGS."
    (let ((y (eval (cdr (assoc hyperb:window-system
  			     '(("epoch"  .  (nth 2 args))   ;; Epoch V4
! 			       ("lemacs" .  (if (eventp args)
! 						(event-y args)
! 					      (cdr args)))
  			       ("xterm"  .  (nth 1 args))
  			       ("sun"    .  (nth 2 args))
  			       ("next"   .  (nth 2 args))