From: Juri Linkov Date: Sun, 15 Dec 2019 23:08:45 +0000 (+0200) Subject: * lisp/tab-bar.el (tab-bar-handle-mouse): Handle close button. X-Git-Tag: emacs-27.0.90~344 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=468c8719945f3dc92a24d2ecc32f3f24f2f49491;p=emacs.git * lisp/tab-bar.el (tab-bar-handle-mouse): Handle close button. --- diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el index 180db4d3e0c..92e11dec394 100644 --- a/lisp/tab-bar.el +++ b/lisp/tab-bar.el @@ -174,11 +174,14 @@ on a console which has no window system but does have a mouse." (when x-position (unless (catch 'done (map-keymap - (lambda (_key binding) + (lambda (key binding) (when (eq (car-safe binding) 'menu-item) (when (> (+ column (length (nth 1 binding))) x-position) - ;; TODO: handle close - (unless (get-text-property (- x-position column) 'close-tab (nth 1 binding)) + (if (get-text-property (- x-position column) 'close-tab (nth 1 binding)) + (let* ((close-key (vector (intern (format "C-%s" key)))) + (close-def (lookup-key keymap close-key))) + (when close-def + (call-interactively close-def))) (call-interactively (nth 2 binding))) (throw 'done t)) (setq column (+ column (length (nth 1 binding))))))