From 8a089a95d8dc5a3b579a349785793dd52ecdb7cd Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Tue, 15 Oct 2019 01:43:45 +0300 Subject: [PATCH] Add images on tab-bar buttons the first time the tab bar is activated * lisp/tab-bar.el (tab-bar-mode): Set display property with image files on tab-bar-new-button and tab-bar-close-button when tab-bar-mode is enabled the first time. (tab-bar-new-button, tab-bar-close-button): Use default values without display image properties. (Bug#37685) --- lisp/tab-bar.el | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el index 23ac243f53d..3fe750908b5 100644 --- a/lisp/tab-bar.el +++ b/lisp/tab-bar.el @@ -99,6 +99,29 @@ (cons (cons 'tab-bar-lines val) (assq-delete-all 'tab-bar-lines default-frame-alist))))) + + (when (and tab-bar-mode (not (get-text-property 0 'display tab-bar-new-button))) + ;; This file is pre-loaded so only here we can use the right data-directory: + (let ((file (expand-file-name "images/tabs/new.xpm" data-directory))) + (when (file-exists-p file) + (add-text-properties 0 (length tab-bar-new-button) + `(display (image :type xpm + :file ,file + :margin (2 . 0) + :ascent center)) + tab-bar-new-button)))) + + (when (and tab-bar-mode (not (get-text-property 0 'display tab-bar-close-button))) + ;; This file is pre-loaded so only here we can use the right data-directory: + (let ((file (expand-file-name "images/tabs/close.xpm" data-directory))) + (when (file-exists-p file) + (add-text-properties 0 (length tab-bar-close-button) + `(display (image :type xpm + :file ,file + :margin (2 . 0) + :ascent center)) + tab-bar-close-button)))) + (when tab-bar-mode (global-set-key [(control shift iso-lefttab)] 'tab-previous) (global-set-key [(control shift tab)] 'tab-previous) @@ -198,14 +221,7 @@ before calling the command that adds a new tab." :group 'tab-bar :version "27.1") -(defvar tab-bar-new-button - (propertize " + " - 'display `(image :type xpm - :file ,(expand-file-name - "images/tabs/new.xpm" - data-directory) - :margin (2 . 0) - :ascent center)) +(defvar tab-bar-new-button " + " "Button for creating a new tab.") (defcustom tab-bar-close-button-show t @@ -227,12 +243,6 @@ If nil, don't show it at all." (defvar tab-bar-close-button (propertize " x" - 'display `(image :type xpm - :file ,(expand-file-name - "images/tabs/close.xpm" - data-directory) - :margin (2 . 0) - :ascent center) 'close-tab t :help "Click to close tab") "Button for closing the clicked tab.") -- 2.39.2