[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[7709] update modeline before anything else
From: |
gavinsmith0123 |
Subject: |
[7709] update modeline before anything else |
Date: |
Sun, 9 Apr 2017 05:27:24 -0400 (EDT) |
Revision: 7709
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7709
Author: gavin
Date: 2017-04-09 05:27:24 -0400 (Sun, 09 Apr 2017)
Log Message:
-----------
update modeline before anything else
Modified Paths:
--------------
trunk/ChangeLog
trunk/info/display.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2017-04-08 21:39:32 UTC (rev 7708)
+++ trunk/ChangeLog 2017-04-09 09:27:24 UTC (rev 7709)
@@ -1,3 +1,8 @@
+2017-04-09 Gavin Smith <address@hidden>
+
+ * info/display.c (display_update_one_window): Update modeline
+ before anything else.
+
2017-04-08 Gavin Smith <address@hidden>
* info/info-utils.c (scan_reference_label): If inside an index
Modified: trunk/info/display.c
===================================================================
--- trunk/info/display.c 2017-04-08 21:39:32 UTC (rev 7708)
+++ trunk/info/display.c 2017-04-09 09:27:24 UTC (rev 7709)
@@ -670,6 +670,32 @@
if ((win->first_row < 0) || (win->first_row > the_screen->height))
goto funexit;
+ /* If this window has a modeline, it might need to be redisplayed. Do
+ this before the rest of the window to aid in navigation in case the
+ rest of the window is slow to update (for example, if it has lots of
+ search matches to be displayed). */
+ if (!(win->flags & W_InhibitMode))
+ {
+ window_make_modeline (win);
+ line_index = win->first_row + win->height;
+
+ /* This display line must both be in inverse, and have the same
+ contents. */
+ if ((!display[line_index]->inverse
+ || (strcmp (display[line_index]->text, win->modeline) != 0))
+ /* Check screen isn't very small. */
+ && line_index < the_screen->height)
+ {
+ terminal_goto_xy (0, line_index);
+ terminal_begin_inverse ();
+ terminal_put_text (win->modeline);
+ terminal_end_inverse ();
+ strcpy (display[line_index]->text, win->modeline);
+ display[line_index]->inverse = 1;
+ display[line_index]->textlen = strlen (win->modeline);
+ }
+ }
+
if (win->node)
{
if (!win->line_starts)
@@ -707,31 +733,6 @@
}
}
- /* Finally, if this window has a modeline it might need to be redisplayed.
- Check the window's modeline against the one in the display, and update
- if necessary. */
- if (!(win->flags & W_InhibitMode))
- {
- window_make_modeline (win);
- line_index = win->first_row + win->height;
-
- /* This display line must both be in inverse, and have the same
- contents. */
- if ((!display[line_index]->inverse
- || (strcmp (display[line_index]->text, win->modeline) != 0))
- /* Check screen isn't very small. */
- && line_index < the_screen->height)
- {
- terminal_goto_xy (0, line_index);
- terminal_begin_inverse ();
- terminal_put_text (win->modeline);
- terminal_end_inverse ();
- strcpy (display[line_index]->text, win->modeline);
- display[line_index]->inverse = 1;
- display[line_index]->textlen = strlen (win->modeline);
- }
- }
-
fflush (stdout);
/* Okay, this window doesn't need updating anymore. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [7709] update modeline before anything else,
gavinsmith0123 <=