unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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 --]

  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).