[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r99896: Add variable `scroll-preserve
From: |
Juri Linkov |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r99896: Add variable `scroll-preserve-screen-position-commands'. |
Date: |
Wed, 14 Apr 2010 03:11:21 +0300 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 99896
committer: Juri Linkov <address@hidden>
branch nick: trunk
timestamp: Wed 2010-04-14 03:11:21 +0300
message:
Add variable `scroll-preserve-screen-position-commands'.
http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00403.html
* window.c (Vscroll_preserve_screen_position_commands): New variable
with the default value as the list of Qscroll_down and Qscroll_up.
(window_scroll_pixel_based, window_scroll_line_based): Search the
last command in the list Vscroll_preserve_screen_position_commands
instead of comparing with Qscroll_up and Qscroll_down.
* mwheel.el (scroll-preserve-screen-position-commands):
Add mwheel-scroll to this list of commands.
* simple.el (scroll-preserve-screen-position-commands):
Add scroll-up-command, scroll-down-command, scroll-up-line,
scroll-down-line to this list of commands.
modified:
etc/NEWS
lisp/ChangeLog
lisp/mwheel.el
lisp/simple.el
src/ChangeLog
src/window.c
=== modified file 'etc/NEWS'
--- a/etc/NEWS 2010-04-13 03:29:38 +0000
+++ b/etc/NEWS 2010-04-14 00:11:21 +0000
@@ -75,6 +75,9 @@
** New scrolling commands `scroll-up-line' and `scroll-down-line'
scroll a line instead of full screen.
+** New variable `scroll-preserve-screen-position-commands' defines
+a list of scroll command affected by `scroll-preserve-screen-position.
+
* Editing Changes in Emacs 24.1
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2010-04-13 03:29:38 +0000
+++ b/lisp/ChangeLog 2010-04-14 00:11:21 +0000
@@ -1,3 +1,12 @@
+2010-04-14 Juri Linkov <address@hidden>
+
+ * mwheel.el (scroll-preserve-screen-position-commands):
+ Add mwheel-scroll to this list of commands.
+
+ * simple.el (scroll-preserve-screen-position-commands):
+ Add scroll-up-command, scroll-down-command, scroll-up-line,
+ scroll-down-line to this list of commands.
+
2010-04-13 Stefan Monnier <address@hidden>
* obsolete/complete.el: Move from lisp/complete.el.
=== modified file 'lisp/mwheel.el'
--- a/lisp/mwheel.el 2010-01-13 08:35:10 +0000
+++ b/lisp/mwheel.el 2010-04-14 00:11:21 +0000
@@ -246,6 +246,8 @@
(run-with-timer mouse-wheel-inhibit-click-time nil
'mwheel-inhibit-click-timeout))))
+(add-to-list 'scroll-preserve-screen-position-commands 'mwheel-scroll)
+
(defvar mwheel-installed-bindings nil)
;; preloaded ;;;###autoload
=== modified file 'lisp/simple.el'
--- a/lisp/simple.el 2010-04-05 23:44:24 +0000
+++ b/lisp/simple.el 2010-04-14 00:11:21 +0000
@@ -4771,6 +4771,7 @@
(goto-char (point-max))))))))
(put 'scroll-up-command 'isearch-scroll t)
+(add-to-list 'scroll-preserve-screen-position-commands 'scroll-up-command)
(defun scroll-down-command (&optional arg)
"Scroll text of selected window down ARG lines; or near full screen if no
ARG.
@@ -4799,6 +4800,7 @@
(goto-char (point-min))))))))
(put 'scroll-down-command 'isearch-scroll t)
+(add-to-list 'scroll-preserve-screen-position-commands 'scroll-down-command)
;;; Scrolling commands which scroll a line instead of full screen.
@@ -4810,6 +4812,7 @@
(scroll-up (or arg 1)))
(put 'scroll-up-line 'isearch-scroll t)
+(add-to-list 'scroll-preserve-screen-position-commands 'scroll-up-line)
(defun scroll-down-line (&optional arg)
"Scroll text of selected window down ARG lines; or one line if no ARG.
@@ -4819,6 +4822,7 @@
(scroll-down (or arg 1)))
(put 'scroll-down-line 'isearch-scroll t)
+(add-to-list 'scroll-preserve-screen-position-commands 'scroll-down-line)
(defun scroll-other-window-down (lines)
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2010-04-13 15:16:42 +0000
+++ b/src/ChangeLog 2010-04-14 00:11:21 +0000
@@ -1,3 +1,11 @@
+2010-04-14 Juri Linkov <address@hidden>
+
+ * window.c (Vscroll_preserve_screen_position_commands): New variable
+ with the default value as the list of Qscroll_down and Qscroll_up.
+ (window_scroll_pixel_based, window_scroll_line_based): Search the
+ last command in the list Vscroll_preserve_screen_position_commands
+ instead of comparing with Qscroll_up and Qscroll_down.
+
2010-04-13 Jan Djärv <address@hidden>
* gtkutil.c (xg_set_geometry): Set geometry for PPosition also.
=== modified file 'src/window.c'
--- a/src/window.c 2010-03-31 02:08:05 +0000
+++ b/src/window.c 2010-04-14 00:11:21 +0000
@@ -168,6 +168,10 @@
Lisp_Object Vscroll_preserve_screen_position;
+/* List of commands affected by `Vscroll_preserve_screen_position'. */
+
+Lisp_Object Vscroll_preserve_screen_position_commands;
+
/* Non-nil means that text is inserted before window's markers. */
Lisp_Object Vwindow_point_insertion_type;
@@ -4946,8 +4950,8 @@
possibility of point becoming "stuck" on a tall line when
scrolling by one line. */
if (window_scroll_pixel_based_preserve_y < 0
- || (!EQ (current_kboard->Vlast_command, Qscroll_up)
- && !EQ (current_kboard->Vlast_command, Qscroll_down)))
+ || NILP (Fmemq (current_kboard->Vlast_command,
+ Vscroll_preserve_screen_position_commands)))
{
start_display (&it, w, start);
move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
@@ -5207,8 +5211,8 @@
if (!NILP (Vscroll_preserve_screen_position))
{
if (window_scroll_preserve_vpos <= 0
- || (!EQ (current_kboard->Vlast_command, Qscroll_up)
- && !EQ (current_kboard->Vlast_command, Qscroll_down)))
+ || NILP (Fmemq (current_kboard->Vlast_command,
+ Vscroll_preserve_screen_position_commands)))
{
struct position posit
= *compute_motion (startpos, 0, 0, 0,
@@ -7265,9 +7269,19 @@
A value of t means point keeps its screen position if the scroll
command moved it vertically out of the window, e.g. when scrolling
by full screens.
-Any other value means point always keeps its screen position. */);
+Any other value means point always keeps its screen position.
+Scroll commands are defined by the variable
+`scroll-preserve-screen-position-commands'. */);
Vscroll_preserve_screen_position = Qnil;
+ DEFVAR_LISP ("scroll-preserve-screen-position-commands",
+ &Vscroll_preserve_screen_position_commands,
+ doc: /* A list of commands whose scrolling should keep screen
position unchanged.
+This list defines the names of scroll commands affected by the variable
+`scroll-preserve-screen-position'. */);
+ Vscroll_preserve_screen_position_commands =
+ Fcons (Qscroll_down, Fcons (Qscroll_up, Qnil));
+
DEFVAR_LISP ("window-point-insertion-type", &Vwindow_point_insertion_type,
doc: /* Type of marker to use for `window-point'. */);
Vwindow_point_insertion_type = Qnil;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r99896: Add variable `scroll-preserve-screen-position-commands'.,
Juri Linkov <=