doomemacs/core
Henrik Lissner eb69073578
Fix infinite redrawing/freezing with {centaur,awesome}-tabs
Caused by over-zealous doom-switch-window-hook.

For my own sanity (and if you're curious), I'll break it down here:

1. Doom has a `doom-switch-window-hook` hook. It triggers when window
   focus is changed.
2. We use `buffer-list-update-hook` to trigger
   `doom-switch-window-hook`. (That may sound weird, but this hook is
   reliably executed when window focus is changed -- there are
   safeguards to prevent this from triggering too often)
3. `buffer-list-update-hook` triggers whenever a buffer is created, but
   `doom-switch-window-hook` only triggers if the created buffer is in
   a new window.
4. The use of `with-temp-buffer` in `centaur-tabs-line-format` counts as
   "buffer creation" in a "new window".
5. `+vc-gutter-update-h` is in `doom-switch-window-hook`. This refreshes
   git-gutter, which initiates a redraw of Emacs.
6. When Emacs redraws, it recalculates its mode and header lines. which
   triggers `doom-switch-window-hook` once, which triggers
   `+vc-gutter-update-h`, which redraws the screen, then Emacs recalculates
   the header line, running `centaur-tabs-line-format`...

Infinite loop ensues

Hopefully fixes:
- hlissner/doom-emacs#2436
- ema2159/centaur-tabs#18
- ema2159/centaur-tabs#88
2020-02-27 21:47:32 -05:00
..
autoload Fix #2607: void-variable doom-scratch-initial-major-mode error 2020-02-26 09:46:50 -05:00
cli doom refresh -> doom sync 2020-02-19 23:34:16 -05:00
templates doom refresh -> doom sync 2020-02-19 23:34:16 -05:00
test
core-cli.el Don't recompile in 'doom sync' 2020-02-11 03:20:14 -05:00
core-editor.el Reduce so-long false positives 2020-02-26 18:05:58 -05:00
core-keybinds.el
core-lib.el
core-modules.el
core-packages.el doom refresh -> doom sync 2020-02-19 23:34:16 -05:00
core-projects.el Update def-project-mode! macro docstring 2020-02-22 20:38:34 -05:00
core-ui.el Fix infinite redrawing/freezing with {centaur,awesome}-tabs 2020-02-27 21:47:32 -05:00
core.el Only unset file-name-handler-alist in interactive sessions 2020-02-21 17:03:47 -05:00
packages.el Fix persistent-soft :pin 2020-02-18 01:54:18 -05:00