emacs-devel
[Top][All Lists]
Advanced

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

Re: Question about display engine


From: Eli Zaretskii
Subject: Re: Question about display engine
Date: Thu, 29 Aug 2019 21:36:10 +0300

> Cc: address@hidden, address@hidden
> From: martin rudalics <address@hidden>
> Date: Thu, 29 Aug 2019 09:45:50 +0200
> 
>  >>   > I think we should simply not merge the background color of the region
>  >>   > face when its extend bit is reset.  Then the merged face will not have
>  >>   > that background color.
>  >>
>  >> Then which background color would we use?  That of the comment was
>  >> lost when setting up the current face for the iterator.
>  >
>  > The one that was there before the region was activated.
> 
> But where do we get that from?

It will come out automatically from the face merging process.

> Consider a three lines C buffer with
> code on the first line and a two-line comment covering the remaining
> lines with the region covering the entire buffer.  Hence, the spaces
> following the comment on the second line should be drawn with the
> background of the comment face.

The comment face doesn't have a background, btw.  And for a good
reason.  But I digress.  Maybe.

> But when the display engine gets there, the respective face was not
> even realized.

It will be realized when the display engine comes to that place.
That's exactly what we have been talking about here, right?  Or maybe
I don't understand what difficulty you are seeing there.

>  > Which one is
>  > that will be determined by the order in which the merging process
>  > merges the faces, and by the faces themselves -- whether they do or
>  > don't define a background color, and whether they do or don't have the
>  > :extend bit set.
> 
> The merging process will kick in iff we treat the newline character at
> the end of line 2 as a stop position.  Since no text property changes
> there, I don't see how this could happen.

It will happen because we call append_space_for_newline and
extend_face_to_end_of_line, and those functions _know_ they are at end
of a line.

>  >> I agree that we don't want to extend the region's background.  But the
>  >> question I raised above still stands.
>  >
>  > Did I answer it now?
> 
> If so, I didn't understand the answer yet.

Maybe I don't understand the question, because I see no problems
here.  Just coding.



reply via email to

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