abo-abo / ace-window

Quickly switch windows in Emacs
991 stars 87 forks source link

Window selection characters partially cut off when smooth scrolling is in effect #58

Open will-henney opened 9 years ago

will-henney commented 9 years ago

If a window is scrolled so that a partial line is visible at the top of the screen, then the numbers for the window selection are also only partially visible:

screenshot 2015-06-20 23 33 54

Shouldn't the numbers be attached to the first fully visible line? This situation happens all the time when you are scrolling using a command like mac-mwheel-scroll that scrolls by pixels (assuming that mac-mouse-wheel-smooth-scroll is t).

One possible fix might be to do

(set-window-start window (window-start))

inside your aw-offset function, which has the effect of shifting the window down by a fraction of a line so that the whole top line is visible. It ought to be a no-op if pixel scrolling is not in use, but I haven't tested this.

I am using the Emacs Mac port from Homebrew:

(emacs-version)
"GNU Emacs 24.5.4 (x86_64-apple-darwin13.4.0, Carbon Version 157 AppKit 1265.21)
 of 2015-05-17 on Atago.local"
$ brew cask info emacs-mac
emacs-mac: emacs-24.5-z-mac-5.8
emacs-mac
https://www.gnu.org/software/emacs/
/opt/homebrew-cask/Caskroom/emacs-mac/emacs-24.5-z-mac-5.8 (3925 files, 117M)
https://github.com/railwaycat/homebrew-emacsmacport/blob/master/Casks/emacs-mac.rb
==> Contents
  Emacs.app (app)
abo-abo commented 9 years ago

If a window is scrolled so that a partial line is visible at the top of the screen, then the numbers for the window selection are also only partially visible:

I think this is only possible to do on OSX. I have only GNU/Linux available, so I can't debug this issue. If you know of a way to enable partial scroll on GNU/Linux, let me know. Otherwise, hopefully there will be a patch from an OSX user to fix this eventually.

xuhdev commented 8 years ago

Maybe this package works better in your case.

dscole commented 8 years ago

I believe pull request #78 should fix this as well. Can you give it a try?