emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs-24 r117597: * src/xdisp.c (redisplay_window): Re-run


From: Stefan Monnier
Subject: [Emacs-diffs] emacs-24 r117597: * src/xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
Date: Mon, 20 Oct 2014 21:49:05 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117597
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: emacs-24
timestamp: Mon 2014-10-20 17:48:58 -0400
message:
  * src/xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
  move point.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/xdisp.c                    xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-10-20 19:21:15 +0000
+++ b/src/ChangeLog     2014-10-20 21:48:58 +0000
@@ -1,3 +1,8 @@
+2014-10-20  Stefan Monnier  <address@hidden>
+
+       * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
+       move point.
+
 2014-10-20  Glenn Morris  <address@hidden>
 
        * Version 24.4 released.
@@ -39,7 +44,7 @@
 
        * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to
        make a font_object from a tty frame (Bug#18573).
-       (Finternal_set_lisp_face_attribute): Added FIXME comment.
+       (Finternal_set_lisp_face_attribute): Add FIXME comment.
 
 2014-09-30  Eli Zaretskii  <address@hidden>
 
@@ -51,8 +56,8 @@
        values.
        (my_create_window): Move the calculation of the coordinates of the
        frame's top-left edge here.  Pass them to the input thread via the
-       second parameter of the WM_EMACS_CREATEWINDOW message.  See
-       http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00892.html
+       second parameter of the WM_EMACS_CREATEWINDOW message.
+       See http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00892.html
        for the details.
 
 2014-09-29  Eli Zaretskii  <address@hidden>
@@ -63,8 +68,8 @@
        obey it if the glyph row showing point will be fully visible.
        Likewise when the window start is in a continuation line.  If,
        after trying everything under the 'force_start' label, point is
-       still not fully visible, give up and scroll the window.  Add
-       debugging traces.  (Bug#18545)
+       still not fully visible, give up and scroll the window.
+       Add debugging traces.  (Bug#18545)
 
        * window.c (Frecenter): Set the window's redisplay flag.
 
@@ -244,8 +249,8 @@
 
        * xdisp.c (display_line): Don't assume that the call to
        reseat_at_next_visible_line_start ends up at a character
-       immediately following the newline on the previous line.  Avoids
-       setting the ends_at_zv_p flag on screen lines that are not at or
+       immediately following the newline on the previous line.
+       Avoids setting the ends_at_zv_p flag on screen lines that are not at or
        beyond ZV, which causes infloop in redisplay.  For the details, see
        http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html.
 
@@ -364,12 +369,12 @@
 
 2014-07-17  Eli Zaretskii  <address@hidden>
 
-       * w32select.c (setup_windows_coding_system): Apply
-       CODING_ANNOTATION_MASK to the common_flags member of struct
+       * w32select.c (setup_windows_coding_system):
+       Apply CODING_ANNOTATION_MASK to the common_flags member of struct
        coding_system.  Reported by martin rudalics <address@hidden>.
 
-       * w16select.c (Fw16_get_clipboard_data): Apply
-       CODING_ANNOTATION_MASK to the common_flags member of struct
+       * w16select.c (Fw16_get_clipboard_data):
+       Apply CODING_ANNOTATION_MASK to the common_flags member of struct
        coding_system.
 
        * xdisp.c (init_iterator): Initialize it->stop_charpos to the
@@ -377,8 +382,8 @@
        (handle_invisible_prop): Record in it->stop_charpos the position
        where the invisible text ends.  (Bug#18035)
        (hscroll_window_tree): Don't try hscrolling windows whose cursor
-       row has zero buffer position as their start position.  Reported by
-       martin rudalics <address@hidden>.
+       row has zero buffer position as their start position.
+       Reported by martin rudalics <address@hidden>.
 
 2014-07-16  Eli Zaretskii  <address@hidden>
 
@@ -458,8 +463,8 @@
        are in sync with what the window wants.
        (Bug#17892)
 
-       * xdisp.c (display_line, display_mode_line): Call
-       prepare_desired_row with additional arguments, as appropriate.
+       * xdisp.c (display_line, display_mode_line):
+       Call prepare_desired_row with additional arguments, as appropriate.
 
        * dispextern.h (prepare_desired_row): Adjust prototype.
 
@@ -791,11 +796,10 @@
 
 2014-04-29  Eli Zaretskii  <address@hidden>
 
-       * term.c (tty_menu_display): Move the cursor to the active menu
-       item.
+       * term.c (tty_menu_display): Move the cursor to the active menu item.
        (tty_menu_activate): Return the cursor to the active menu item
-       after displaying the menu and after displaying help-echo.  See
-       http://lists.gnu.org/archive/html/emacs-devel/2014-04/msg00402.html
+       after displaying the menu and after displaying help-echo.
+       See http://lists.gnu.org/archive/html/emacs-devel/2014-04/msg00402.html
        for the details of why this is needed by screen readers and
        Braille displays.
 

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2014-10-02 14:57:05 +0000
+++ b/src/xdisp.c       2014-10-20 21:48:58 +0000
@@ -16309,16 +16309,24 @@
 
          set_cursor_from_row (w, row, w->desired_matrix, 0, 0, 0, 0);
 
-         /* If we are highlighting the region, then we just changed
-            the region, so redisplay to show it.  */
-         /* FIXME: We need to (re)run pre-redisplay-function!  */
-         /* if (markpos_of_region () >= 0)
+         /* Re-run pre-redisplay-function so it can update the region
+            according to the new position of point.  */
+         /* Other than the cursor, w's redisplay is done so we can set its
+            redisplay to false.  Also the buffer's redisplay can be set to
+            false, since propagate_buffer_redisplay should have already
+            propagated its info to `w' anyway.  */
+         w->redisplay = false;
+         XBUFFER (w->contents)->text->redisplay = false;
+         safe__call1 (true, Vpre_redisplay_function, Fcons (window, Qnil));
+
+         if (w->redisplay || XBUFFER (w->contents)->text->redisplay)
            {
+             /* pre-redisplay-function made changes (e.g. move the region)
+                that require another round of redisplay.  */
              clear_glyph_matrix (w->desired_matrix);
              if (!try_window (window, startp, 0))
                goto need_larger_matrices;
            }
-         */
        }
       if (w->cursor.vpos < 0 || !cursor_row_fully_visible_p (w, 0, 0))
        {


reply via email to

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