aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2014-10-20 17:48:58 -0400
committerStefan Monnier2014-10-20 17:48:58 -0400
commit290d4b570fb12a5e92c64376f6018637b33e136f (patch)
treed1bf28d0941913f5060ec8f277e30714050a44f8 /src
parentd20b72d9fa987ea9a511c6bed909c09929dc78f8 (diff)
downloademacs-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/ChangeLog42
-rw-r--r--src/xdisp.c20
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 @@
12014-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
12014-10-20 Glenn Morris <rgm@gnu.org> 62014-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
442014-09-30 Eli Zaretskii <eliz@gnu.org> 492014-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
582014-09-29 Eli Zaretskii <eliz@gnu.org> 632014-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
3652014-07-17 Eli Zaretskii <eliz@gnu.org> 3702014-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
3832014-07-16 Eli Zaretskii <eliz@gnu.org> 3882014-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
7922014-04-29 Eli Zaretskii <eliz@gnu.org> 7972014-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 {