abo-abo / ace-window

Quickly switch windows in Emacs
965 stars 85 forks source link

ace-window-display-mode displays incorrect keys in mode line when a side window is present #198

Open leungbk opened 4 years ago

leungbk commented 4 years ago

When there is a window for which (window-parameter window 'window-side) is non-nil, M-x ace-window works correctly, displaying the correct keys in the window. However, ace-window-display-mode does not display the correct keys in the mode line.

This can be reproduced by installing the treemacs extension, invoking M-x split-window-horizontally followed by M-x treemacs when ace-window-display-mode is on, and then attempting to navigate with M-x ace-window.

jeff-phil commented 11 months ago

Not sure why originally (aw-ignore-on) and (aw-ignore-current) were added, but can comment and override after loaded in your init:

  (defun aw-update ()
    "Update ace-window-path window parameter for all windows.

Ensure all windows are labeled so the user can select a specific
one, even from the set of windows typically ignored when making a
window list."
    (let (;;(aw-ignore-on)
          ;;(aw-ignore-current)
          (ignore-window-parameters t))
      (avy-traverse
       (avy-tree (aw-window-list) aw-keys)
       (lambda (path leaf)
         (set-window-parameter
          leaf 'ace-window-path
          (propertize
           (apply #'string (reverse path))
           'face 'aw-mode-line-face))))))

Looks like still that way in Emacs 29, which ace-window now part of Emacs so will need to file a bug on that version.