Skip to content

Commit 813892f

Browse files
committed
Make default keymap for MIME-View mode statically
mime-view-define-keymap made keymap from scratch, that was hard to customize by user. Now it makes keymap from default keymap, mime-view-mode-map. * mime-view.el (mouse-button-2, mouse-button-3): Removed. (mime-view-mode-map): New variable. (mime-view-mode-default-map): Removed. Use mime-view-mode-map (mime-view-define-keymap, mime-display-message): Adjust users.
1 parent f6e2997 commit 813892f

File tree

1 file changed

+55
-94
lines changed

1 file changed

+55
-94
lines changed

mime-view.el

Lines changed: 55 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1557,102 +1557,63 @@ part (if exist) or the first language message part."
15571557
(setq func (lookup-key menu (apply #'vector events)))
15581558
(commandp func)
15591559
(funcall func))))
1560-
(defvar mouse-button-2 [mouse-2])
1561-
(defvar mouse-button-3 [mouse-3])
15621560

1563-
(defun mime-view-define-keymap (&optional default)
1564-
(let ((mime-view-mode-map (if (keymapp default)
1565-
(copy-keymap default)
1566-
(make-sparse-keymap))))
1567-
(define-key mime-view-mode-map
1568-
"u" (function mime-preview-move-to-upper))
1569-
(define-key mime-view-mode-map
1570-
"p" (function mime-preview-move-to-previous))
1571-
(define-key mime-view-mode-map
1572-
"n" (function mime-preview-move-to-next))
1573-
(define-key mime-view-mode-map
1574-
"\e\t" (function mime-preview-move-to-previous))
1575-
(define-key mime-view-mode-map
1576-
"\t" (function mime-preview-move-to-next))
1577-
(define-key mime-view-mode-map
1578-
" " (function mime-preview-scroll-up-entity))
1579-
(define-key mime-view-mode-map
1580-
"\M- " (function mime-preview-scroll-down-entity))
1581-
(define-key mime-view-mode-map
1582-
"\177" (function mime-preview-scroll-down-entity))
1583-
(define-key mime-view-mode-map
1584-
"\C-m" (function mime-preview-next-line-entity))
1585-
(define-key mime-view-mode-map
1586-
"\C-\M-m" (function mime-preview-previous-line-entity))
1587-
(define-key mime-view-mode-map
1588-
"v" (function mime-preview-play-current-entity))
1589-
(define-key mime-view-mode-map
1590-
"e" (function mime-preview-extract-current-entity))
1591-
(define-key mime-view-mode-map
1592-
"\C-c\C-p" (function mime-preview-print-current-entity))
1593-
1594-
(define-key mime-view-mode-map
1595-
"\C-c\C-t\C-f" (function mime-preview-toggle-header))
1596-
(define-key mime-view-mode-map
1597-
"\C-c\C-th" (function mime-preview-toggle-header))
1598-
(define-key mime-view-mode-map
1599-
"\C-c\C-t\C-c" (function mime-preview-toggle-content))
1600-
1601-
(define-key mime-view-mode-map
1602-
"\C-c\C-v\C-f" (function mime-preview-show-header))
1603-
(define-key mime-view-mode-map
1604-
"\C-c\C-vh" (function mime-preview-show-header))
1605-
(define-key mime-view-mode-map
1606-
"\C-c\C-v\C-c" (function mime-preview-show-content))
1607-
1608-
(define-key mime-view-mode-map
1609-
"\C-c\C-d\C-f" (function mime-preview-hide-header))
1610-
(define-key mime-view-mode-map
1611-
"\C-c\C-dh" (function mime-preview-hide-header))
1612-
(define-key mime-view-mode-map
1613-
"\C-c\C-d\C-c" (function mime-preview-hide-content))
1614-
1615-
(define-key mime-view-mode-map
1616-
"a" (function mime-preview-follow-current-entity))
1617-
(define-key mime-view-mode-map
1618-
"q" (function mime-preview-quit))
1619-
(define-key mime-view-mode-map
1620-
"\C-c\C-x" (function mime-preview-kill-buffer))
1621-
;; (define-key mime-view-mode-map
1622-
;; "<" (function beginning-of-buffer))
1623-
;; (define-key mime-view-mode-map
1624-
;; ">" (function end-of-buffer))
1625-
(define-key mime-view-mode-map
1626-
"?" (function describe-mode))
1627-
(define-key mime-view-mode-map
1628-
[tab] (function mime-preview-move-to-next))
1629-
(define-key mime-view-mode-map
1630-
[delete] (function mime-preview-scroll-down-entity))
1631-
(define-key mime-view-mode-map
1632-
[backspace] (function mime-preview-scroll-down-entity))
1633-
(if (functionp default)
1634-
(setq mime-view-mode-map
1635-
(append mime-view-mode-map (list (cons t default)))))
1636-
(if mouse-button-2
1637-
(define-key mime-view-mode-map
1638-
mouse-button-2 (function mime-button-dispatcher)))
1639-
(define-key mime-view-mode-map
1640-
mouse-button-3 (function mime-view-popup-menu))
1641-
(define-key mime-view-mode-map [menu-bar mime-view]
1642-
(cons mime-view-menu-title
1643-
(make-sparse-keymap mime-view-menu-title)))
1644-
(mapc (function
1645-
(lambda (item)
1646-
(define-key mime-view-mode-map
1647-
(vector 'menu-bar 'mime-view (car item))
1648-
(cons (nth 1 item)(nth 2 item)))))
1561+
(defvar mime-view-mode-map
1562+
(let ((keymap (make-sparse-keymap)))
1563+
(mapc (lambda (elt)
1564+
(when elt
1565+
(define-key keymap (car elt) (cdr elt))))
1566+
`(("u" . mime-preview-move-to-upper)
1567+
("p" . mime-preview-move-to-previous)
1568+
("n" . mime-preview-move-to-next)
1569+
("\e\t" . mime-preview-move-to-previous)
1570+
("\t" . mime-preview-move-to-next)
1571+
(" " . mime-preview-scroll-up-entity)
1572+
("\M- " . mime-preview-scroll-down-entity)
1573+
("\177" . mime-preview-scroll-down-entity)
1574+
("\C-m" . mime-preview-next-line-entity)
1575+
("\C-\M-m" . mime-preview-previous-line-entity)
1576+
("v" . mime-preview-play-current-entity)
1577+
("e" . mime-preview-extract-current-entity)
1578+
("\C-c\C-p" . mime-preview-print-current-entity)
1579+
("\C-c\C-t\C-f" . mime-preview-toggle-header)
1580+
("\C-c\C-th" . mime-preview-toggle-header)
1581+
("\C-c\C-t\C-c" . mime-preview-toggle-content)
1582+
("\C-c\C-v\C-f" . mime-preview-show-header)
1583+
("\C-c\C-vh" . mime-preview-show-header)
1584+
("\C-c\C-v\C-c" . mime-preview-show-content)
1585+
("\C-c\C-d\C-f" . mime-preview-hide-header)
1586+
("\C-c\C-dh" . mime-preview-hide-header)
1587+
("\C-c\C-d\C-c" . mime-preview-hide-content)
1588+
("a" . mime-preview-follow-current-entity)
1589+
("q" . mime-preview-quit)
1590+
("\C-c\C-x" . mime-preview-kill-buffer)
1591+
("?" . describe-mode)
1592+
([tab] . mime-preview-move-to-next)
1593+
([delete] . mime-preview-scroll-down-entity)
1594+
([backspace] . mime-preview-scroll-down-entity)
1595+
([mouse-2] . mime-button-dispatcher)
1596+
([mouse-3] . mime-view-popup-menu)
1597+
([menu-bar mime-view] .
1598+
,(cons mime-view-menu-title
1599+
(make-sparse-keymap mime-view-menu-title)))))
1600+
(mapc (lambda (item)
1601+
(define-key keymap
1602+
(vector 'menu-bar 'mime-view (car item))
1603+
(cons (nth 1 item) (nth 2 item))))
16491604
(reverse mime-view-menu-list))
1605+
keymap))
16501606

1607+
(defun mime-view-define-keymap (&optional default)
1608+
(let ((keymap (copy-keymap mime-view-mode-map)))
1609+
(cond
1610+
((keymapp default)
1611+
(set-keymap-parent keymap default))
1612+
((functionp default)
1613+
(setq keymap
1614+
(append keymap (list (cons t default))))))
16511615
;; (run-hooks 'mime-view-define-keymap-hook)
1652-
mime-view-mode-map))
1653-
1654-
(defvar mime-view-mode-default-map (mime-view-define-keymap))
1655-
1616+
keymap))
16561617

16571618
(defsubst mime-maybe-hide-echo-buffer ()
16581619
"Clear mime-echo buffer and delete window for it."
@@ -1688,7 +1649,7 @@ buffer of MESSAGE. If it is nil, current `major-mode' is used.
16881649
16891650
Optional argument KEYMAP is keymap of MIME-View mode. If it is
16901651
non-nil, DEFAULT-KEYMAP-OR-FUNCTION is ignored. If it is nil,
1691-
`mime-view-mode-default-map' is used."
1652+
`mime-view-mode-map' is used."
16921653
(mime-maybe-hide-echo-buffer)
16931654
(let ((win-conf (current-window-configuration)))
16941655
(or preview-buffer
@@ -1721,7 +1682,7 @@ non-nil, DEFAULT-KEYMAP-OR-FUNCTION is ignored. If it is nil,
17211682
(or keymap
17221683
(if default-keymap-or-function
17231684
(mime-view-define-keymap default-keymap-or-function)
1724-
mime-view-mode-default-map)))
1685+
mime-view-mode-map)))
17251686
(let ((point
17261687
(next-single-property-change (point-min) 'mime-view-entity)))
17271688
(if point

0 commit comments

Comments
 (0)