diff options
| author | Stefan Monnier | 2014-10-20 17:48:58 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2014-10-20 17:48:58 -0400 |
| commit | 290d4b570fb12a5e92c64376f6018637b33e136f (patch) | |
| tree | d1bf28d0941913f5060ec8f277e30714050a44f8 /src | |
| parent | d20b72d9fa987ea9a511c6bed909c09929dc78f8 (diff) | |
| download | emacs-290d4b570fb12a5e92c64376f6018637b33e136f.tar.gz emacs-290d4b570fb12a5e92c64376f6018637b33e136f.zip | |
* src/xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
move point.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 42 | ||||
| -rw-r--r-- | src/xdisp.c | 20 |
2 files changed, 37 insertions, 25 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index e0e46a63b0b..39e94a85a0e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2014-10-20 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we | ||
| 4 | move point. | ||
| 5 | |||
| 1 | 2014-10-20 Glenn Morris <rgm@gnu.org> | 6 | 2014-10-20 Glenn Morris <rgm@gnu.org> |
| 2 | 7 | ||
| 3 | * Version 24.4 released. | 8 | * Version 24.4 released. |
| @@ -39,7 +44,7 @@ | |||
| 39 | 44 | ||
| 40 | * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to | 45 | * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to |
| 41 | make a font_object from a tty frame (Bug#18573). | 46 | make a font_object from a tty frame (Bug#18573). |
| 42 | (Finternal_set_lisp_face_attribute): Added FIXME comment. | 47 | (Finternal_set_lisp_face_attribute): Add FIXME comment. |
| 43 | 48 | ||
| 44 | 2014-09-30 Eli Zaretskii <eliz@gnu.org> | 49 | 2014-09-30 Eli Zaretskii <eliz@gnu.org> |
| 45 | 50 | ||
| @@ -51,8 +56,8 @@ | |||
| 51 | values. | 56 | values. |
| 52 | (my_create_window): Move the calculation of the coordinates of the | 57 | (my_create_window): Move the calculation of the coordinates of the |
| 53 | frame's top-left edge here. Pass them to the input thread via the | 58 | frame's top-left edge here. Pass them to the input thread via the |
| 54 | second parameter of the WM_EMACS_CREATEWINDOW message. See | 59 | second parameter of the WM_EMACS_CREATEWINDOW message. |
| 55 | http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00892.html | 60 | See http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00892.html |
| 56 | for the details. | 61 | for the details. |
| 57 | 62 | ||
| 58 | 2014-09-29 Eli Zaretskii <eliz@gnu.org> | 63 | 2014-09-29 Eli Zaretskii <eliz@gnu.org> |
| @@ -63,8 +68,8 @@ | |||
| 63 | obey it if the glyph row showing point will be fully visible. | 68 | obey it if the glyph row showing point will be fully visible. |
| 64 | Likewise when the window start is in a continuation line. If, | 69 | Likewise when the window start is in a continuation line. If, |
| 65 | after trying everything under the 'force_start' label, point is | 70 | after trying everything under the 'force_start' label, point is |
| 66 | still not fully visible, give up and scroll the window. Add | 71 | still not fully visible, give up and scroll the window. |
| 67 | debugging traces. (Bug#18545) | 72 | Add debugging traces. (Bug#18545) |
| 68 | 73 | ||
| 69 | * window.c (Frecenter): Set the window's redisplay flag. | 74 | * window.c (Frecenter): Set the window's redisplay flag. |
| 70 | 75 | ||
| @@ -244,8 +249,8 @@ | |||
| 244 | 249 | ||
| 245 | * xdisp.c (display_line): Don't assume that the call to | 250 | * xdisp.c (display_line): Don't assume that the call to |
| 246 | reseat_at_next_visible_line_start ends up at a character | 251 | reseat_at_next_visible_line_start ends up at a character |
| 247 | immediately following the newline on the previous line. Avoids | 252 | immediately following the newline on the previous line. |
| 248 | setting the ends_at_zv_p flag on screen lines that are not at or | 253 | Avoids setting the ends_at_zv_p flag on screen lines that are not at or |
| 249 | beyond ZV, which causes infloop in redisplay. For the details, see | 254 | beyond ZV, which causes infloop in redisplay. For the details, see |
| 250 | http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html. | 255 | http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html. |
| 251 | 256 | ||
| @@ -364,12 +369,12 @@ | |||
| 364 | 369 | ||
| 365 | 2014-07-17 Eli Zaretskii <eliz@gnu.org> | 370 | 2014-07-17 Eli Zaretskii <eliz@gnu.org> |
| 366 | 371 | ||
| 367 | * w32select.c (setup_windows_coding_system): Apply | 372 | * w32select.c (setup_windows_coding_system): |
| 368 | CODING_ANNOTATION_MASK to the common_flags member of struct | 373 | Apply CODING_ANNOTATION_MASK to the common_flags member of struct |
| 369 | coding_system. Reported by martin rudalics <rudalics@gmx.at>. | 374 | coding_system. Reported by martin rudalics <rudalics@gmx.at>. |
| 370 | 375 | ||
| 371 | * w16select.c (Fw16_get_clipboard_data): Apply | 376 | * w16select.c (Fw16_get_clipboard_data): |
| 372 | CODING_ANNOTATION_MASK to the common_flags member of struct | 377 | Apply CODING_ANNOTATION_MASK to the common_flags member of struct |
| 373 | coding_system. | 378 | coding_system. |
| 374 | 379 | ||
| 375 | * xdisp.c (init_iterator): Initialize it->stop_charpos to the | 380 | * xdisp.c (init_iterator): Initialize it->stop_charpos to the |
| @@ -377,8 +382,8 @@ | |||
| 377 | (handle_invisible_prop): Record in it->stop_charpos the position | 382 | (handle_invisible_prop): Record in it->stop_charpos the position |
| 378 | where the invisible text ends. (Bug#18035) | 383 | where the invisible text ends. (Bug#18035) |
| 379 | (hscroll_window_tree): Don't try hscrolling windows whose cursor | 384 | (hscroll_window_tree): Don't try hscrolling windows whose cursor |
| 380 | row has zero buffer position as their start position. Reported by | 385 | row has zero buffer position as their start position. |
| 381 | martin rudalics <rudalics@gmx.at>. | 386 | Reported by martin rudalics <rudalics@gmx.at>. |
| 382 | 387 | ||
| 383 | 2014-07-16 Eli Zaretskii <eliz@gnu.org> | 388 | 2014-07-16 Eli Zaretskii <eliz@gnu.org> |
| 384 | 389 | ||
| @@ -458,8 +463,8 @@ | |||
| 458 | are in sync with what the window wants. | 463 | are in sync with what the window wants. |
| 459 | (Bug#17892) | 464 | (Bug#17892) |
| 460 | 465 | ||
| 461 | * xdisp.c (display_line, display_mode_line): Call | 466 | * xdisp.c (display_line, display_mode_line): |
| 462 | prepare_desired_row with additional arguments, as appropriate. | 467 | Call prepare_desired_row with additional arguments, as appropriate. |
| 463 | 468 | ||
| 464 | * dispextern.h (prepare_desired_row): Adjust prototype. | 469 | * dispextern.h (prepare_desired_row): Adjust prototype. |
| 465 | 470 | ||
| @@ -791,11 +796,10 @@ | |||
| 791 | 796 | ||
| 792 | 2014-04-29 Eli Zaretskii <eliz@gnu.org> | 797 | 2014-04-29 Eli Zaretskii <eliz@gnu.org> |
| 793 | 798 | ||
| 794 | * term.c (tty_menu_display): Move the cursor to the active menu | 799 | * term.c (tty_menu_display): Move the cursor to the active menu item. |
| 795 | item. | ||
| 796 | (tty_menu_activate): Return the cursor to the active menu item | 800 | (tty_menu_activate): Return the cursor to the active menu item |
| 797 | after displaying the menu and after displaying help-echo. See | 801 | after displaying the menu and after displaying help-echo. |
| 798 | http://lists.gnu.org/archive/html/emacs-devel/2014-04/msg00402.html | 802 | See http://lists.gnu.org/archive/html/emacs-devel/2014-04/msg00402.html |
| 799 | for the details of why this is needed by screen readers and | 803 | for the details of why this is needed by screen readers and |
| 800 | Braille displays. | 804 | Braille displays. |
| 801 | 805 | ||
diff --git a/src/xdisp.c b/src/xdisp.c index 80d4d52531a..7ed11530846 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -16309,16 +16309,24 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) | |||
| 16309 | 16309 | ||
| 16310 | set_cursor_from_row (w, row, w->desired_matrix, 0, 0, 0, 0); | 16310 | set_cursor_from_row (w, row, w->desired_matrix, 0, 0, 0, 0); |
| 16311 | 16311 | ||
| 16312 | /* If we are highlighting the region, then we just changed | 16312 | /* Re-run pre-redisplay-function so it can update the region |
| 16313 | the region, so redisplay to show it. */ | 16313 | according to the new position of point. */ |
| 16314 | /* FIXME: We need to (re)run pre-redisplay-function! */ | 16314 | /* Other than the cursor, w's redisplay is done so we can set its |
| 16315 | /* if (markpos_of_region () >= 0) | 16315 | redisplay to false. Also the buffer's redisplay can be set to |
| 16316 | { | 16316 | false, since propagate_buffer_redisplay should have already |
| 16317 | propagated its info to `w' anyway. */ | ||
| 16318 | w->redisplay = false; | ||
| 16319 | XBUFFER (w->contents)->text->redisplay = false; | ||
| 16320 | safe__call1 (true, Vpre_redisplay_function, Fcons (window, Qnil)); | ||
| 16321 | |||
| 16322 | if (w->redisplay || XBUFFER (w->contents)->text->redisplay) | ||
| 16323 | { | ||
| 16324 | /* pre-redisplay-function made changes (e.g. move the region) | ||
| 16325 | that require another round of redisplay. */ | ||
| 16317 | clear_glyph_matrix (w->desired_matrix); | 16326 | clear_glyph_matrix (w->desired_matrix); |
| 16318 | if (!try_window (window, startp, 0)) | 16327 | if (!try_window (window, startp, 0)) |
| 16319 | goto need_larger_matrices; | 16328 | goto need_larger_matrices; |
| 16320 | } | 16329 | } |
| 16321 | */ | ||
| 16322 | } | 16330 | } |
| 16323 | if (w->cursor.vpos < 0 || !cursor_row_fully_visible_p (w, 0, 0)) | 16331 | if (w->cursor.vpos < 0 || !cursor_row_fully_visible_p (w, 0, 0)) |
| 16324 | { | 16332 | { |