diff options
| author | Jared Finder <jared@finder.org> | 2024-01-26 10:08:30 -0800 |
|---|---|---|
| committer | Eli Zaretskii <eliz@gnu.org> | 2024-05-18 12:46:22 +0300 |
| commit | da325ff7b29b0becdd1356021428fa100d240ec4 (patch) | |
| tree | 7bedb7552cad4e73e53bebea9aa04099d37d8ba4 | |
| parent | fd3ab22a3eec5c3151b0791fc768e555b66e267c (diff) | |
Add user option to only display default tool bar
This works well with `window-tool-bar-mode', to be added in upcoming
commit. Then the default tool bar is displayed frame-wide and
mode-specific tool bars are displayed in the window that mode is
active in.
* lisp/tool-bar.el (tool-bar-always-show-default): New user option.
(tool-bar--cache-key, tool-bar-make-keymap-1): Return default tool bar
when option is set.
| -rw-r--r-- | lisp/tool-bar.el | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lisp/tool-bar.el b/lisp/tool-bar.el index 0f645338674..01c65c42324 100644 --- a/lisp/tool-bar.el +++ b/lisp/tool-bar.el @@ -100,7 +100,9 @@ parameter is set to `top', and above the tool bar it is set to (defconst tool-bar-keymap-cache (make-hash-table :test #'equal)) (defsubst tool-bar--cache-key () - (cons (frame-terminal) (sxhash-eq tool-bar-map))) + (cons (frame-terminal) + (sxhash-eq (if tool-bar-always-show-default (default-value 'tool-bar-map) + tool-bar-map)))) (defsubst tool-bar--secondary-cache-key () (cons (frame-terminal) (sxhash-eq secondary-tool-bar-map))) @@ -191,7 +193,9 @@ in which case the value of `tool-bar-map' is used instead." bind)) (plist-put plist :image image))) bind)) - (or map tool-bar-map))) + (or map + (if tool-bar-always-show-default (default-value 'tool-bar-map) + tool-bar-map)))) ;;;###autoload (defun tool-bar-add-item (icon def key &rest props) @@ -378,6 +382,15 @@ the tool bar." (modify-all-frames-parameters (list (cons 'tool-bar-position val)))))) +(defcustom tool-bar-always-show-default nil + "If non-nil, `tool-bar-mode' only shows the default tool bar. +This works well when also using `global-window-tool-bar-mode' to +display buffer-specific tool bars." + :type 'boolean + :group 'frames + :group 'mouse + :version "30.1") + ;; Modifier bar mode. |
