1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-01 11:14:55 +00:00

Add variable scroll-error-top-bottom.

http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00403.html

* simple.el (scroll-error-top-bottom): New defcustom.
(scroll-up-command, scroll-down-command): Use it.  Doc fix.

* emulation/pc-select.el (pc-select-override-scroll-error):
Obsolete in favor of `scroll-error-top-bottom'.
This commit is contained in:
Juri Linkov 2010-04-14 03:43:54 +03:00
parent 3212974649
commit 7b05466ff6
4 changed files with 38 additions and 8 deletions

View File

@ -69,8 +69,9 @@ Use `set-scroll-bar-mode' to change this.
with Xft.
** New scrolling commands `scroll-up-command' and `scroll-down-command'
(bound to [next] and [prior]) does not signal errors at top/bottom
of buffer at first key-press (instead moves to top/bottom of buffer).
(bound to C-v/[next] and M-v/[prior]) does not signal errors at top/bottom
of buffer at first key-press (instead moves to top/bottom of buffer)
when a new variable `scroll-error-top-bottom' is non-nil.
** New scrolling commands `scroll-up-line' and `scroll-down-line'
scroll a line instead of full screen.

View File

@ -1,3 +1,11 @@
2010-04-14 Juri Linkov <juri@jurta.org>
* simple.el (scroll-error-top-bottom): New defcustom.
(scroll-up-command, scroll-down-command): Use it. Doc fix.
* emulation/pc-select.el (pc-select-override-scroll-error):
Obsolete in favor of `scroll-error-top-bottom'.
2010-04-14 Juri Linkov <juri@jurta.org>
* tutorial.el (tutorial--default-keys): Rebind `C-v' to

View File

@ -93,6 +93,9 @@ text with these commands. If you set this variable to non-nil, these
errors are suppressed."
:type 'boolean
:group 'pc-select)
(define-obsolete-variable-alias 'pc-select-override-scroll-error
'scroll-error-top-bottom
"24.1")
(defcustom pc-select-selection-keys-only nil
"*Non-nil means only bind the basic selection keys when started.

View File

@ -4744,20 +4744,34 @@ This also turns on `word-wrap' in the buffer."
;;; of buffer at first key-press (instead moves to top/bottom
;;; of buffer).
(defcustom scroll-error-top-bottom nil
"Move point to top/bottom of buffer before signalling a scrolling error.
A value of nil means just signal an error if no more scrolling possible.
A value of t means point moves to the beginning or the end of the buffer
\(depending on scrolling direction) when no more scrolling possible.
When point is already on that position, then signal an error."
:type 'boolean
:group 'scrolling
:version "24.1")
(defun scroll-up-command (&optional arg)
"Scroll text of selected window upward ARG lines; or near full screen if no ARG.
If `scroll-up' cannot scroll window further, move cursor to the bottom line.
If `scroll-error-top-bottom' is non-nil and `scroll-up' cannot
scroll window further, move cursor to the bottom line.
When point is already on that position, then signal an error.
A near full screen is `next-screen-context-lines' less than a full screen.
Negative ARG means scroll downward.
If ARG is the atom `-', scroll downward by nearly full screen."
(interactive "^P")
(cond
((eq arg '-) (scroll-down-command nil))
((null scroll-error-top-bottom)
(scroll-up arg))
((eq arg '-)
(scroll-down-command nil))
((< (prefix-numeric-value arg) 0)
(scroll-down-command (- (prefix-numeric-value arg))))
((eobp)
(scroll-up arg)) ; signal error
(scroll-up arg)) ; signal error
(t
(condition-case nil
(scroll-up arg)
@ -4775,18 +4789,22 @@ If ARG is the atom `-', scroll downward by nearly full screen."
(defun scroll-down-command (&optional arg)
"Scroll text of selected window down ARG lines; or near full screen if no ARG.
If `scroll-down' cannot scroll window further, move cursor to the top line.
If `scroll-error-top-bottom' is non-nil and `scroll-down' cannot
scroll window further, move cursor to the top line.
When point is already on that position, then signal an error.
A near full screen is `next-screen-context-lines' less than a full screen.
Negative ARG means scroll upward.
If ARG is the atom `-', scroll upward by nearly full screen."
(interactive "^P")
(cond
((eq arg '-) (scroll-up-command nil))
((null scroll-error-top-bottom)
(scroll-down arg))
((eq arg '-)
(scroll-up-command nil))
((< (prefix-numeric-value arg) 0)
(scroll-up-command (- (prefix-numeric-value arg))))
((bobp)
(scroll-down arg)) ; signal error
(scroll-down arg)) ; signal error
(t
(condition-case nil
(scroll-down arg)