GNU bug report logs - #29737
27.0.50; pixel-scroll-mode is laggy

Previous Next

Package: emacs;

Reported by: Valentin Ignatyev <valentjedi <at> gmail.com>

Date: Sat, 16 Dec 2017 18:12:01 UTC

Severity: normal

Found in version 27.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Tak Kunihiro <tkk <at> misasa.okayama-u.ac.jp>
To: eliz <at> gnu.org
Cc: tkk <at> misasa.okayama-u.ac.jp, valentjedi <at> gmail.com, 29737 <at> debbugs.gnu.org
Subject: bug#29737: 27.0.50; pixel-scroll-mode is laggy
Date: Sun, 17 Dec 2017 11:00:45 +0900 (JST)
[Message part 1 (text/plain, inline)]
> While I see that scrolling became pixel-wise indeed, it is also very
> laggy. CPU blows up to 100% and ui hangs and freezes. It works ok if
> I scroll slowly though. It happens with all my plugins and
> customizations and if I run emacs with -Q flag. My OS is Arch Linux
> and I also have HiDPI screen (it's MacBook 11,4, mid-2015).

On the previous commit <8eb6870be690128fb1cbc012c55093813c39830c>, I
revised two functions.  I fixed `pixel-scroll-down' but I broke
`pixel-scroll-up'.  I apologize for the careless commit.

With the current and broken `pixel-scroll-up', when EOB is shown on
top of the screen, emacs hangs (or goes in infinite while loop).  The
pixel-scroll-up should be reverted to commit
<1bda71ec3b11eeb4d06c3da094a3cb21bac18d5c>.

I'm sending ChangeLog and a patch relative to the current master.

* ChangeLog

Fix vertical cursor motion in pixel-scroll.el

* lisp/pixel-scroll.el (pixel-scroll-up): Do not try to move cursor down when EOB
is shown at the top.  This function is reverted to commit
1bda71ec3b11eeb4d06c3da094a3cb21bac18d5c. (bug#29737)

[pixel-scroll.el.diff (text/x-patch, inline)]
diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el
index f64a439..7024487
--- a/lisp/pixel-scroll.el
+++ b/lisp/pixel-scroll.el
@@ -110,11 +110,11 @@ This is an alternative of `scroll-up'.  Scope moves downward."
                        pixel-resolution-fine-flag
                      (frame-char-height))
                  (pixel-line-height))))
-      (while (pixel-point-at-top-p amt) ; prevent too late (multi tries)
-        (vertical-motion 1))            ; move point downward
-      (if (pixel-eob-at-top-p)          ; when end-of-the-buffer is close
-          (scroll-up 1)                 ; relay on robust method
-        (pixel-scroll-pixel-up amt))))) ; move scope downward
+      (if (pixel-eob-at-top-p)            ; when end-of-the-buffer is close
+          (scroll-up 1)                   ; relay on robust method
+        (while (pixel-point-at-top-p amt) ; prevent too late (multi tries)
+          (vertical-motion 1))            ; move point downward
+        (pixel-scroll-pixel-up amt)))))   ; move scope downward
 
 (defun pixel-scroll-down (&optional arg)
   "Scroll text of selected window down ARG lines.

This bug report was last modified 7 years and 223 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.