From: Ergus <spacibba@aol.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 36858@debbugs.gnu.org, rotim.davor@gmail.com
Subject: bug#36858: 27.0.50; display bugs with display-fill-column-indicator-mode
Date: Wed, 7 Aug 2019 18:20:33 +0200 [thread overview]
Message-ID: <20190807162033.hpphf2pbfo4p6vam@Ergus> (raw)
In-Reply-To: <83tvatavmh.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 2933 bytes --]
On Wed, Aug 07, 2019 at 05:38:30PM +0300, Eli Zaretskii wrote:
>> Date: Mon, 5 Aug 2019 17:27:47 +0200
>> From: Ergus <spacibba@aol.com>
>> Cc: 36858@debbugs.gnu.org, Davor Rotim <rotim.davor@gmail.com>
>>
>> 1) The condition ends_at_zv_p didn't work as expected, I don't know If
>> this is an issue somewhere else, but at least in my tests, the condition
>> was always false. (for all the lines implied before and after ZV, where
>> there was company window or not)
>>
>> So the filter condition I am using now is:
>>
>> IT_CHARPOS (*it) < ZV
>>
>> which seems to work fine.
>>
>> 2) There is a corner case because the indicator is never generated for
>> the latest line in the buffer. So a \n is required always at the end of
>> the buffer if there is text, which for me is fine (unix format), but I
>> don't know if I should correct that, should I?
>
>Unix format has nothing to do with this, as in a buffer we always have
>only \n characters at end of line. But notr having the indicator show
>in the last line of a buffer that doesn't end in a newline is
>unfortunate. Which is why I suggested to test the ends_at_zv_p flag.
>What exactly didn't work with it? Can you show me a test case where
>the glyph rows past ZV don't have this flag set? Maybe you should
>test the enabled_p flag as well?
>
Hi Eli:
I just made this test:
in this code (in xdisp.c):
if (it->current_x < indicator_column_x)
{
it->face_id = merge_faces (it->w, Qextend_to_end_of_line,
0, extend_face_merged_id);
it->char_to_display = XFIXNAT (Vdisplay_fill_column_indicator_character);
PRODUCE_GLYPHS (it);
it->face_id = extend_face_merged_id;
}
I changed char_to_display:
it->char_to_display = (it->glyph_row->ends_at_zv_p) ? '1' : '0';
And then I obtained the attached image.
As you can see the condition returns 0 for lines before zv, for the last
text line and for the company extra lines.
>> In terminal emacs, in the original emacs-26 code, in the function:
>> extend_face_to_end_of_line the code was:
>>
>> ```
>> face = FACE_FROM_ID (f, (it->face_before_selective_p
>> ? it->saved_face_id
>> : it->face_id));
>> (...)
>>
>> if (it->glyph_row->ends_at_zv_p)
>> it->face_id = default_face->id;
>> else
>> it->face_id = face->id;
>> PRODUCE_GLYPHS (it);
>>
>> while (it->current_x <= it->last_visible_x)
>> PRODUCE_GLYPHS (it);
>> ```
>>
>> So the rest of the line was filled with the last face, (so this issue was
>> already there since then, because the rest of the line is filled with an
>> underlined face)
>>
>> I can change the code to fill the rest of the line with a new merged
>> face (as I do for graphical emacs), but I think that this fix is
>> unrelated with dfci, so maybe someone else must give a look before to
>> prevent me breaking anything.
>
>This is a more general issue, and I will respond to your question on
>emacs-devel.
>
>Thanks.
[-- Attachment #2: Screenshot_2019-08-07_18-10-20.png --]
[-- Type: image/png, Size: 7415 bytes --]
next prev parent reply other threads:[~2019-08-07 16:20 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-30 18:11 bug#36858: 27.0.50; display bugs with display-fill-column-indicator-mode Davor Rotim
2019-08-02 9:16 ` Eli Zaretskii
2019-08-02 10:25 ` Ergus
2019-08-02 11:53 ` Eli Zaretskii
2019-08-05 23:54 ` Ergus
2019-08-05 15:27 ` Ergus
2019-08-07 14:38 ` Eli Zaretskii
2019-08-07 16:20 ` Ergus [this message]
2019-08-07 16:37 ` Eli Zaretskii
2019-08-07 17:06 ` Ergus
2019-08-07 17:29 ` Eli Zaretskii
2019-08-07 19:46 ` Ergus
2019-08-08 7:17 ` Ergus
2019-08-08 17:33 ` Eli Zaretskii
2019-08-08 22:29 ` Ergus
2019-08-08 17:31 ` Eli Zaretskii
2019-08-08 22:32 ` Ergus
2019-08-06 10:44 ` Dmitry Gutov
2019-08-10 8:22 ` Eli Zaretskii
2019-08-10 8:35 ` Davor Rotim
2019-08-10 9:58 ` Eli Zaretskii
2019-08-10 10:12 ` Davor Rotim
2019-08-10 10:45 ` Eli Zaretskii
2019-08-10 11:53 ` Eli Zaretskii
2019-08-10 13:21 ` Carsten Dominik
2019-08-10 13:38 ` Eli Zaretskii
2019-08-10 14:17 ` Carsten Dominik
2019-08-10 14:41 ` Eli Zaretskii
2019-08-12 7:10 ` Carsten Dominik
2019-08-12 14:26 ` Eli Zaretskii
2019-08-10 18:02 ` Ergus
2019-10-20 22:12 ` bug#36858: (no subject) Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
[not found] <<CAMWA6ANTAsSz4ckRGSTuVRCHJKZMDEd1SsBaJetW3bWRjPTRNQ@mail.gmail.com>
[not found] ` <<83zhkh8m5n.fsf@gnu.org>
[not found] ` <<CAMWA6AMvD5Vt=fDcHjufcrVUPy__tQ00tk9aobYjyrgoaSiF=w@mail.gmail.com>
[not found] ` <<83mugh8hqg.fsf@gnu.org>
[not found] ` <<CAMWA6ANXJvdCptHYV_qzXuwtfdoXM3Ygo577gPorgLRD1EQAJw@mail.gmail.com>
[not found] ` <<83imr58fji.fsf@gnu.org>
[not found] ` <<83d0hd8ceh.fsf@gnu.org>
[not found] ` <<CADn3Z2Ke4S+BCaniLWYxT3Vf6-gqt-oHCqcHj6rz22tG0ntw8g@mail.gmail.com>
[not found] ` <<83a7ch87j8.fsf@gnu.org>
2019-08-10 16:15 ` bug#36858: 27.0.50; display bugs with display-fill-column-indicator-mode Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190807162033.hpphf2pbfo4p6vam@Ergus \
--to=spacibba@aol.com \
--cc=36858@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=rotim.davor@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).