emacs-devel
[Top][All Lists]
Advanced

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

update_window: w->desired_matrix is a partial representation.


From: Keith David Bershatsky
Subject: update_window: w->desired_matrix is a partial representation.
Date: Thu, 17 Jan 2019 00:05:28 -0800

I am working on optimizing redrawing fake cursors in relation to implementing 
proposed feature requests #22873 (multiple fake cursors); and, #17684 
(crosshairs / visible fill-column).

HYPOTHETICAL:

*  The header-line-format is non-nil.

*  Line numbering is turned on.

*  The window contains a word-wrapped line consisting of 4 screen lines; 
followed by a hard return; followed by miscellaneous lines of text.

0.  My header-line format.
1.  12345⤸
2.  67890⤸
3.  12345⤸
4.  67890
5.
6.  Every good boy deserves fudge.
7.  Once upon a time there lived a ....

*  The user interactively calls undo, and text (!) is inserted into the middle 
of the first screen line.

*  The word-wrapped line in the first step increases in length from 4 screen 
lines to 5 screen lines; followed by a hard return; followed by miscellaneous 
lines.

0.  My header-line format.
1.  12!34⤸
2.  56789⤸
3.  01234⤸
4.  56789⤸
5.  0
6.  
7.  Every good boy deserves fudge.
8.  Once upon a time there lived a ....

RESULT:

* All subsequent screen lines get pushed down one row to make room for the new 
row (VPOS 5) that was inserted by the undo.

* update_window_line reports that VPOS lines 1 to 5 are changed_p.

* If we dump_glyph_row for each line of w->desired_matrix from within 
update_window, we observe that the empty line between the first 6 screen lines 
(including the header-line) and the subsequent miscellaneous lines is _not_ 
present.  VPOS 6 is "Every good by deserves fudge."

ERRONEOUS EXPECTATION:  I expected VPOS 6 of w->desired_matrix to be the line 
containing a visible line number 6, _not_ the subsequent line that contains 
"Every good by deserves fudge."

QUESTION #1:  From within update_window, is it possible to programmatically 
access the glyph_row containing the visible line number 6?

QUESTION #2:  From within update_window, is it possible to programmatically 
test to see whether VPOS 6 and all subsequent screen lines have been pushed 
downwards to make room for the new VPOS 5?



reply via email to

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