Commit 14bd267d authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

(artist-mouse-choose-operation): Call `tmm-prompt' instead of `x-popup-menu'

if we cannot popup menus.
(artist-compute-up-event-key): New function.
(artist-mouse-choose-operation, artist-down-mouse-1): Call it.
parent 241c4680
2009-11-13 Tomas Abrahamsson <tab@lysator.liu.se>
* textmodes/artist.el (artist-mouse-choose-operation): Call
`tmm-prompt' instead of `x-popup-menu' if we cannot popup
menus. Bug noticed by Eli Zaretskii <eliz@gnu.org>.
(artist-compute-up-event-key): New function.
(artist-mouse-choose-operation, artist-down-mouse-1): Call it.
2009-11-13 Kenichi Handa <handa@m17n.org>
* language/japan-util.el: Make sure that the value of jisx0208
......
......@@ -4750,6 +4750,15 @@ If optional argument STATE is positive, turn borders on."
"Function that does nothing."
(interactive))
(defun artist-compute-up-event-key (ev)
"Compute the corresponding up key sequence for event EV."
(let* ((basic (event-basic-type ev))
(unshifted basic)
(shifted (make-symbol (concat "S-" (symbol-name basic)))))
(if (artist-event-is-shifted ev)
(make-vector 1 shifted)
(make-vector 1 unshifted))))
(defun artist-down-mouse-1 (ev)
"Perform drawing action for event EV."
(interactive "@e")
......@@ -4761,15 +4770,10 @@ If optional argument STATE is positive, turn borders on."
(orig-draw-region-min-y artist-draw-region-min-y)
(orig-draw-region-max-y artist-draw-region-max-y)
(orig-pointer-shape (if (eq window-system 'x) x-pointer-shape nil))
(echo-keystrokes 10000) ; a lot of seconds
(echoq-keystrokes 10000) ; a lot of seconds
;; Remember original binding for the button-up event to this
;; button-down event.
(key (let* ((basic (event-basic-type ev))
(unshifted basic)
(shifted (make-symbol (concat "S-" (symbol-name basic)))))
(if (artist-event-is-shifted ev)
(make-vector 1 shifted)
(make-vector 1 unshifted))))
(key (artist-compute-up-event-key ev))
(orig-button-up-binding (lookup-key (current-global-map) key)))
(unwind-protect
......@@ -4835,7 +4839,21 @@ If optional argument STATE is positive, turn borders on."
(progn
(select-window (posn-window (event-start last-input-event)))
(list last-input-event
(x-popup-menu last-nonmenu-event artist-popup-menu-table))))
(if (display-popup-menus-p)
(x-popup-menu last-nonmenu-event artist-popup-menu-table)
'no-popup-menus))))
(if (eq op 'no-popup-menus)
;; No popup menus. Call `tmm-prompt' instead, but with the
;; up-mouse-button, if any, temporarily disabled, otherwise
;; it'll interfere.
(let* ((key (artist-compute-up-event-key ev))
(orig-button-up-binding (lookup-key (current-global-map) key)))
(unwind-protect
(define-key (current-global-map) key 'artist-do-nothing)
(setq op (tmm-prompt artist-popup-menu-table))
(if orig-button-up-binding
(define-key (current-global-map) key orig-button-up-binding)))))
(let ((draw-fn (artist-go-get-draw-fn-from-symbol (car op)))
(set-fn (artist-fc-get-fn-from-symbol (car op))))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment