diff options
| author | David Aspinall | 2002-08-08 12:06:10 +0000 |
|---|---|---|
| committer | David Aspinall | 2002-08-08 12:06:10 +0000 |
| commit | c3223d2457f10cae2553b7d61c0c91c1a9ee837a (patch) | |
| tree | 266d5b873622da53660f45cff3cbd7c488543f56 | |
| parent | b5ef19c5990c6e2c8baa5aaded4c32dfa254861d (diff) | |
Add span context menu support for Emacs21.
| -rw-r--r-- | generic/pg-user.el | 20 |
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)) |
