emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Emacs-diffs] /srv/bzr/emacs/trunk r99831: Scrolling commands which


From: Juri Linkov
Subject: Re: [Emacs-diffs] /srv/bzr/emacs/trunk r99831: Scrolling commands which does not signal errors at top/bottom.
Date: Wed, 07 Apr 2010 00:06:17 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (x86_64-pc-linux-gnu)

>> I see now what do you mean.  This patch takes care of that:
>
> Not exactly. On emacs-23, go to a long line and do:
>
>   C-e <next> <next> <next>  ...  ; until you reach a line shorter than
> the original one
>   ... <prior> <prior> <prior>         ; point is still at end of line
>
> That does not happen with your patch, AFAICS.

Then additionally you need this patch:

=== modified file 'src/window.c'
--- src/window.c        2010-04-05 22:54:57 +0000
+++ src/window.c        2010-04-06 21:05:45 +0000
@@ -54,7 +54,7 @@ (at your option) any later version.
 
 Lisp_Object Qwindowp, Qwindow_live_p, Qwindow_configuration_p;
 Lisp_Object Qdisplay_buffer;
-Lisp_Object Qscroll_up, Qscroll_down;
+Lisp_Object Qscroll_up, Qscroll_down, Qscroll_up_command, Qscroll_down_command;
 Lisp_Object Qwindow_size_fixed;
 
 extern Lisp_Object Qleft_margin, Qright_margin;
@@ -4947,7 +4947,9 @@ (let ((edges (window-edges))) (- (nth 2 
         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)))
+             && !EQ (current_kboard->Vlast_command, Qscroll_down)
+             && !EQ (current_kboard->Vlast_command, Qscroll_up_command)
+             && !EQ (current_kboard->Vlast_command, Qscroll_down_command)))
        {
          start_display (&it, w, start);
          move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
@@ -5208,7 +5210,9 @@ (let ((edges (window-edges))) (- (nth 2 
     {
       if (window_scroll_preserve_vpos <= 0
          || (!EQ (current_kboard->Vlast_command, Qscroll_up)
-             && !EQ (current_kboard->Vlast_command, Qscroll_down)))
+             && !EQ (current_kboard->Vlast_command, Qscroll_down)
+             && !EQ (current_kboard->Vlast_command, Qscroll_up_command)
+             && !EQ (current_kboard->Vlast_command, Qscroll_down_command)))
        {
          struct position posit
            = *compute_motion (startpos, 0, 0, 0,
@@ -7176,6 +7180,12 @@ (let ((edges (window-edges))) (- (nth 2 
   Qscroll_down = intern_c_string ("scroll-down");
   staticpro (&Qscroll_down);
 
+  Qscroll_up_command = intern_c_string ("scroll-up-command");
+  staticpro (&Qscroll_up_command);
+
+  Qscroll_down_command = intern_c_string ("scroll-down-command");
+  staticpro (&Qscroll_down_command);
+
   Qwindow_size_fixed = intern_c_string ("window-size-fixed");
   staticpro (&Qwindow_size_fixed);
   Fset (Qwindow_size_fixed, Qnil);
@@ -7377,9 +7387,9 @@ (let ((edges (window-edges))) (- (nth 2 
   initial_define_key (control_x_map, '<', "scroll-left");
   initial_define_key (control_x_map, '>', "scroll-right");
 
-  initial_define_key (global_map, Ctl ('V'), "scroll-up");
+  initial_define_key (global_map, Ctl ('V'), "scroll-up-command");
   initial_define_key (meta_map, Ctl ('V'), "scroll-other-window");
-  initial_define_key (meta_map, 'v', "scroll-down");
+  initial_define_key (meta_map, 'v', "scroll-down-command");
 }
 
 /* arch-tag: 90a9c576-0590-48f1-a5f1-6c96a0452d9f

-- 
Juri Linkov
http://www.jurta.org/emacs/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]