]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/tab-bar.el (tab-bar--undefine-keys): New function from tab-bar-mode.
authorJuri Linkov <juri@linkov.net>
Mon, 22 Feb 2021 16:56:47 +0000 (18:56 +0200)
committerJuri Linkov <juri@linkov.net>
Mon, 22 Feb 2021 16:56:47 +0000 (18:56 +0200)
lisp/tab-bar.el

index dba79fbd81cd1bb00406fb2d70e455584c1929e3..8326104240466bfa62f0d2c43ead271aa915c16e 100644 (file)
@@ -113,6 +113,15 @@ Possible modifier keys are `control', `meta', `shift', `hyper', `super' and
   (unless (global-key-binding [(control shift iso-lefttab)])
     (global-set-key [(control shift iso-lefttab)] 'tab-previous)))
 
+(defun tab-bar--undefine-keys ()
+  "Uninstall key bindings previously bound by `tab-bar--define-keys'."
+  (when (eq (global-key-binding [(control tab)]) 'tab-next)
+    (global-unset-key [(control tab)]))
+  (when (eq (global-key-binding [(control shift tab)]) 'tab-previous)
+    (global-unset-key [(control shift tab)]))
+  (when (eq (global-key-binding [(control shift iso-lefttab)]) 'tab-previous)
+    (global-unset-key [(control shift iso-lefttab)])))
+
 (defun tab-bar--load-buttons ()
   "Load the icons for the tab buttons."
   (when (and tab-bar-new-button
@@ -181,13 +190,7 @@ update."
     (tab-bar--load-buttons))
   (if tab-bar-mode
       (tab-bar--define-keys)
-    ;; Unset only keys bound by tab-bar
-    (when (eq (global-key-binding [(control tab)]) 'tab-next)
-      (global-unset-key [(control tab)]))
-    (when (eq (global-key-binding [(control shift tab)]) 'tab-previous)
-      (global-unset-key [(control shift tab)]))
-    (when (eq (global-key-binding [(control shift iso-lefttab)]) 'tab-previous)
-      (global-unset-key [(control shift iso-lefttab)]))))
+    (tab-bar--undefine-keys)))
 
 (defun tab-bar-handle-mouse (event)
   "Text-mode emulation of switching tabs on the tab bar.