[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A user menu in the wrong position
>>>>> In [emacs-w3m : No.09152] Leo wrote:
> I have defined a menu to display in global menu map as follows.
> ,----
>| (easy-menu-define sdl:user-utils-menu nil "User utilities menu."
>| '("Add-On"
>| ["BBDB" bbdb :visible (fboundp 'bbdb)]
>| ["W3M" w3m :visible (fboundp 'w3m)]
>| ["Slime" slime :visible (fboundp 'slime)]))
>| (define-key-after
>| (lookup-key global-map [menu-bar])
>| [user-utils]
>| (cons "Utils" sdl:user-utils-menu))
> `----
> In w3m, this menu will be place after the "Help" menu while in all
> other modes it is placed after "Tools" menu. I am wondering if w3m is
> doing something funny.
It is because the value of the `menu-bar-final-items' variable[1]
is modified in emacs-w3m buffers locally in order to place the
w3m menu at the forefront of the menu bar. You can customize it
as follows:
--8<---------------cut here---------------start------------->8---
(add-hook
'w3m-mode-hook
(lambda nil
(let ((item 'tools) ;; Place the `user-utils' menu after this.
(items (delq 'user-utils (copy-sequence menu-bar-final-items))))
(setq menu-bar-final-items
(append
(nreverse (cons 'user-utils (memq item (reverse items))))
(cdr (memq item items)))))))
--8<---------------cut here---------------end--------------->8---
[1] If you want to know the value, you'd better evaluate the
following form in the *scratch* buffer:
(with-current-buffer "*w3m*"
menu-bar-final-items)
Regards,