GNU bug report logs -
#43617
27.1; Define-minor-mode keybindings not get precedence over global keymap
Previous Next
Reported by: dalanicolai <at> gmail.com
Date: Fri, 25 Sep 2020 18:11:02 UTC
Severity: normal
Tags: notabug
Found in version 27.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
dalanicolai <at> gmail.com writes:
> Start emacs with the -Q flag, use the following code to create
> keybindings with define-minor-mode:
>
> (define-minor-mode pdf-continuous-scroll-mode
> "Emulate continuous scroll with two synchronized buffers"
> nil
> " Continuous"
> '(((kbd "j") . (lambda () (interactive) (print "pushed j")))
> ((kbd "C-n") . (lambda () (interactive)(print "pushed C-n"))))
> (print "toggled minor mode"))
>
> Now activate the just defined pdf-continuous-scroll-mode.
> The "C-n" keybinding does not work correctly while the "j"
> keybinding does (i.e. prints "pushed j").
Hm. It seems like there's a difference between \C-n and (kbd "C-n")
here for some reason. With this definition:
(define-minor-mode pdf-continuous-scroll-mode-3
"Emulate continuous scroll with two synchronized buffers"
nil
" Continuous"
'(((kbd "j") . (lambda () (interactive) (print "pushed j")))
("\C-n" . (lambda () (interactive)(print "pushed C-n"))))
(print "toggled minor mode"))
we get the keymap:
(keymap
(14 lambda nil
(interactive)
(print "pushed C-n"))
(106 lambda nil
(interactive)
(print "pushed j")))
With `kbd', we get the following keymap, which surely has to be wrong:
(keymap
(67 keymap
(45 keymap
(110 lambda nil
(interactive)
(print "pushed C-n"))))
(106 lambda nil
(interactive)
(print "pushed j")))
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
This bug report was last modified 4 years and 289 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.