aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Aspinall2002-08-08 12:06:10 +0000
committerDavid Aspinall2002-08-08 12:06:10 +0000
commitc3223d2457f10cae2553b7d61c0c91c1a9ee837a (patch)
tree266d5b873622da53660f45cff3cbd7c488543f56
parentb5ef19c5990c6e2c8baa5aaded4c32dfa254861d (diff)
Add span context menu support for Emacs21.
-rw-r--r--generic/pg-user.el20
1 files changed, 17 insertions, 3 deletions
diff --git a/generic/pg-user.el b/generic/pg-user.el
index b04ee796..26859c5b 100644
--- a/generic/pg-user.el
+++ b/generic/pg-user.el
@@ -852,7 +852,11 @@ If NUM is negative, move upwards. Return new span."
(defvar pg-span-context-menu-keymap
(let ((map (make-sparse-keymap
"Keymap for context-sensitive menus on spans")))
- (define-key map [button3] 'pg-span-context-menu)
+ (cond
+ (proof-running-on-XEmacs
+ (define-key map [button3] 'pg-span-context-menu))
+ (proof-running-on-Emacs21
+ (define-key map [down-mouse-3] 'pg-span-context-menu)))
map))
;; FIXME: TODO here:
@@ -861,10 +865,20 @@ If NUM is negative, move upwards. Return new span."
;; (pgidioms).
;;
+(defun pg-span-for-event (event)
+ "Return span corresponding to position of a mouse click EVENT."
+ (cond
+ (proof-running-on-XEmacs
+ (select-window (event-window event))
+ (span-at (event-point event) 'type))
+ (proof-running-on-Emacs21
+ (with-current-buffer
+ (window-buffer (posn-window (event-start event)))
+ (span-at (posn-point (event-start event)) 'type)))))
+
(defun pg-span-context-menu (event)
(interactive "e")
- (select-window (event-window event))
- (let ((span (span-at (event-point event) 'type))
+ (let ((span (pg-span-for-event event))
cspan)
;; Find controlling span
(while (setq cspan (span-property span 'controlspan))