[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: "Final" version of tty child frames
From: |
Gerd Möllmann |
Subject: |
Re: "Final" version of tty child frames |
Date: |
Wed, 15 Jan 2025 18:29:24 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
martin rudalics <rudalics@gmx.at> writes:
>>> Back to redisplay optimization.
>>
>> Does this mean you've solved the problem in set_cursor_from_row?
>> Because that problem, if it's real, has nothing to do with redisplay
>> optimizations.
>
> Turning the table: When I insert a character in the row at hand the
> problem doesn't occur. When I just move point it does occur. Why?
These two cases will probably end up in different places in
redisplay_internal.
> First special case the approach to tty frames. On a tty there is only
> one cursor in the selected window so we don't have to care about the
> cursor in any window but the selected one. Right?
Right, but I would check if set_cursor_from_row sets something that is
used somewhere else. I don't think so, but it's something like 450 lines
long, so I won't bet.
(And I think anything special has only to be done if the frame is a root
frame AND has visible children. Only a root frame's current matrix can
be affected, and only by visible children.)
>
> In set_cursor_from_row in step 1 advance over the border glyphs of a
> child frame, over any glyph whose object is a buffer but not the buffer
> of the selected window and maybe over any glyph whose object is nil (I
> don't know what kind of such glyphs might exist - maybe the
> truncation/continuation line glyphs). Whatever it is, we have to bypass
> the
>
> /* glyph was not inserted by redisplay for internal purposes */
> && !NILP (glyph->object))
>
> check.
Hm, you should be able to use glyph::frame here somewhere. if matrix is
the current matrix, and the frame is a tty root frame, and glyph->frame
!= frame, then it can come only from a child frame would be my theory.
>
> If the glyph at point is not an object of the selected window's buffer,
> the cursor is not shown (IIUC there is a separate routine for detecting
> that but we maybe could do it here right away). Otherwise show the
> cursor as usual.
I think you mean is_cursor_obscured in dispnew.c? Maybe that could
indeed be used. I'm using the current matrix and glyph::frame there.
>
> If step 1 fails, we could try a similar approach in step 2 (stop when a
> glyph's object is at PT) but I didn't look into that yet.
>
> martin
- Re: "Final" version of tty child frames, (continued)
- Re: "Final" version of tty child frames, Eli Zaretskii, 2025/01/14
- Re: "Final" version of tty child frames, martin rudalics, 2025/01/14
- Re: "Final" version of tty child frames, Gerd Möllmann, 2025/01/14
- Re: "Final" version of tty child frames, Gerd Möllmann, 2025/01/14
- Re: "Final" version of tty child frames, martin rudalics, 2025/01/15
- Re: "Final" version of tty child frames, Gerd Möllmann, 2025/01/15
- Re: "Final" version of tty child frames, Eli Zaretskii, 2025/01/15
- Re: "Final" version of tty child frames, Gerd Möllmann, 2025/01/15
- Re: "Final" version of tty child frames, Eli Zaretskii, 2025/01/15
- Re: "Final" version of tty child frames, martin rudalics, 2025/01/15
- Re: "Final" version of tty child frames,
Gerd Möllmann <=
- Re: "Final" version of tty child frames, Gerd Möllmann, 2025/01/15
- Re: "Final" version of tty child frames, Eli Zaretskii, 2025/01/15
- Re: "Final" version of tty child frames, Gerd Möllmann, 2025/01/15
- Re: "Final" version of tty child frames, Eli Zaretskii, 2025/01/16
- Re: "Final" version of tty child frames, Gerd Möllmann, 2025/01/16
- Re: "Final" version of tty child frames, Eli Zaretskii, 2025/01/16
- Re: "Final" version of tty child frames, Gerd Möllmann, 2025/01/16
- Re: "Final" version of tty child frames, Eli Zaretskii, 2025/01/16
- Re: "Final" version of tty child frames, martin rudalics, 2025/01/16
- Re: "Final" version of tty child frames, Gerd Möllmann, 2025/01/16