[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/topspace af98947c27 115/181: Prevent "Beginning of buff
From: |
ELPA Syncer |
Subject: |
[elpa] externals/topspace af98947c27 115/181: Prevent "Beginning of buffer" error message (#12) |
Date: |
Tue, 23 Aug 2022 12:58:39 -0400 (EDT) |
branch: externals/topspace
commit af98947c27c1dbfdc2bf21a651d9a745434b5ab0
Author: Trevor Pogue <trevorpogue@gmail.com>
Commit: GitHub <noreply@github.com>
Prevent "Beginning of buffer" error message (#12)
- Prevent a "Beginning of buffer" error message from appearing in the
*Messages* buffer when scrolling above the top line.
- No longer modify `mwheel-scroll-down-function`, because before it was
modified in order to prevent a scrolling bug, but that bug is avoided
now by preventing the "Beginning of buffer" error from occurring.
---
topspace.el | 42 +++++++++++++++++++-----------------------
1 file changed, 19 insertions(+), 23 deletions(-)
diff --git a/topspace.el b/topspace.el
index 343370af62..713f59c78b 100644
--- a/topspace.el
+++ b/topspace.el
@@ -96,9 +96,6 @@ This flag signals to wait until then to display top space.")
(defvar topspace--advice-added nil "Keep track if `advice-add` done already.")
-(defvar-local topspace--previous-mwheel-scroll-down-function nil
- "Previous mwheel function that does the job of scrolling downward.")
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Customization
@@ -216,18 +213,6 @@ TOTAL-LINES is used in the same way as in `scroll-down'."
(- total-lines (- new-topspace-height old-topspace-height)))
(if (display-graphic-p) total-lines (round total-lines))))
-(defun topspace--mwheel-scroll-down-function (&optional total-lines)
- "Run instead of `mwheel-scroll-down-function' for scrolling down.
-For some reason this function only works if it is different from
-`scroll-down' in the sense that
-it does nothing in the case that TOTAL-LINES is nil.
-TODO: figure out exactly why this is the case."
- (cond
- ((not (topspace--enabled))
- (scroll-down total-lines))
- (total-lines
- (scroll-down total-lines))))
-
(defun topspace--filter-args-scroll-down (&optional total-lines)
"Run before `scroll-down' for scrolling above the top line.
TOTAL-LINES is used in the same way as in `scroll-down'."
@@ -238,7 +223,23 @@ TOTAL-LINES is used in the same way as in `scroll-down'."
(setq total-lines (or total-lines (- (topspace--window-height)
next-screen-context-lines)))
(setq topspace--total-lines-scrolling total-lines)
- (list (topspace--scroll total-lines)))))
+ (cond
+ ((and (= (window-start) 1) (> total-lines 0))
+ ;; Prevent "Begining of buffer" error/message when scrolling above
+ ;; top line by passing 0 to `scroll-down' when relevant:
+ (let ((max-height
+ (- (topspace--window-height) (topspace--context-lines)))
+ (old-height (topspace--height)))
+ (topspace--scroll total-lines)
+ ;; But if top space is at its max height, then allow the
+ ;; "Begining of buffer" error/message to occur:
+ (if (= old-height max-height)
+ (list total-lines)
+ (list 0))))
+ (t ;; if no top space present then we don't have to worry about
+ ;; signalling the "Begining of buffer" error/message
+ ;; (so can skip the above conditions for avoiding this error)
+ (list (topspace--scroll total-lines)))))))
(defun topspace--filter-args-scroll-up (&optional total-lines)
"Run before `scroll-up' for scrolling above the top line.
@@ -262,7 +263,8 @@ when `window-start` equals 1, which can only be true after
the scroll command is
run in the described case above."
(cond
((not (topspace--enabled)))
- ((setq total-lines topspace--total-lines-scrolling)
+ (t
+ (setq total-lines topspace--total-lines-scrolling)
(when (and (> topspace--window-start-before-scroll 1) (= (window-start) 1))
(let ((lines-already-scrolled (topspace--count-lines
1 topspace--window-start-before-scroll)))
@@ -595,17 +597,11 @@ Topspace will not be enabled for:
(advice-add #'scroll-up :after #'topspace--after-scroll)
(advice-add #'scroll-down :after #'topspace--after-scroll)
(advice-add #'recenter :after #'topspace--after-recenter))
- (setq topspace--previous-mwheel-scroll-down-function
- mwheel-scroll-down-function)
- (setq mwheel-scroll-down-function
- #'topspace--mwheel-scroll-down-function)
(dolist (window (get-buffer-window-list))
(with-selected-window window (topspace--draw)))))
(defun topspace--disable ()
"Disable `topspace-mode' and do mode cleanup."
- (setq mwheel-scroll-down-function
- topspace--previous-mwheel-scroll-down-function)
(remove-overlays 1 1 'topspace--remove-from-buffer-tag t)
(topspace--remove-hooks))
- [elpa] externals/topspace 2329b63363 091/181: Update Changelog, (continued)
- [elpa] externals/topspace 2329b63363 091/181: Update Changelog, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace 4455f47ed4 093/181: Reword docstrings, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace d0e7e89413 094/181: Put topspace-empty-line-indicator inside fringe (#9), ELPA Syncer, 2022/08/23
- [elpa] externals/topspace 9d6f0ef459 099/181: Fix terminal bug and minor mouse scrolling bug, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace 6d3b5e5cf7 103/181: Update README.md, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace df7cb1ce4f 107/181: Bump version: 0.1.2 → 0.2.0, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace edb0d582ae 108/181: Update Changelog, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace c21ceb5e3a 109/181: Set back Unreleased as recent version in changelog, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace e3cd398678 112/181: Fix bug caused by #11 when scrolling with topspace disabled, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace cb9dbf5c0f 114/181: Start adding tests, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace af98947c27 115/181: Prevent "Beginning of buffer" error message (#12),
ELPA Syncer <=
- [elpa] externals/topspace ba275f7c94 119/181: Fix off-by-one-line scroll bug at top of buffer introduced in #10, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace 334cf13ab5 121/181: Internal optimization, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace f5d01b58f8 127/181: Update Changelog, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace 4724b926a4 134/181: Add continuous integration and coverage, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace a4c5873fb4 125/181: Update Changelog, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace d376bca4c8 130/181: Internal refactoring, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace e6cc9081a2 128/181: Add `topspace-height` function for use by external packages (#15), ELPA Syncer, 2022/08/23
- [elpa] externals/topspace 7a0d565b68 126/181: Set back changelog head to `Unreleased`, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace f79b07c982 129/181: Update Changelog, ELPA Syncer, 2022/08/23
- [elpa] externals/topspace 64bbce19a0 136/181: Add coverage badge to readme, ELPA Syncer, 2022/08/23