Revised patch attached. On Wed, Jan 29, 2025 at 1:09 PM Juri Linkov wrote: > > Right. How about I get rid of tab-bar-mode--tab-key-bind and just bind > > normally? I'll submit a revised patch shortly, if so. > > Yes, please do. > > TIA. > > > >>> This is useful to avoid key binding conflicts, such as when > folding > > in > > >>> outline mode using TAB keys, or when a user wants to define her > own > > >>> tab-bar keys without first having to remove the defaults. > > >> > > >> The current implementation was intended to allow removing the > > default keys > > >> easily from 'tab-bar-mode-map'. Here is the NEWS from bug#69578: > > >> > > >> *** New keymap 'tab-bar-mode-map'. > > >> By default it contains a keybinding 'C-TAB' to switch tabs, but > > only > > >> when 'C-TAB' is not bound globally. You can unbind it if it > > conflicts > > >> with 'C-TAB' in other modes. > > > > > > This strategy doesn't account for the key definition race > condition, > > and > > > relies on the user to have first defined global TAB keys before > > > tab-bar-mode is enabled. > > > > It checks for global-key-binding every time when the user types > C-TAB. > > So it could also check with local-key-binding and > > minor-mode-key-binding in e.g. outline mode, etc. > > > > But since you want to move the C-TAB keybinding from tab-bar-mode-map > > back to tab-bar--define-keys, then :filter is not needed anymore, > > so you can check for global-key-binding only once in > > tab-bar--define-keys. >