emacs-devel
[Top][All Lists]
Advanced

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

Multi-column character on the right edge and highlighting


From: Kyotaro HORIGUCHI
Subject: Multi-column character on the right edge and highlighting
Date: Sat, 29 Oct 2005 04:58:50 +0900 (JST)
User-agent: Mew version 4.2.54 on Emacs 22.0 / Mule 5.0 (榊) / Meadow-3.00-dev (菊)

In the frame with 80 column width, a two-column width character
at 80th column is pushed out into the next line and the last
column of the first line becomes void.

When this continued lines are highlighed together and then
restored, the void column remains highlighed. This can be caused
by using transient-mark-mode.


This behavior is caused by set_glyph_string_background_width() in
xdisp.c.

| set_glyph_string_background_width (s, start, last_x)
| ...
|   if (start == s->row->used[s->area]
|       && s->area == TEXT_AREA
|       && ((s->hl == DRAW_NORMAL_TEXT
|          && (s->row->fill_line_p
==>            || s->face->background != default_face->background
|              || s->face->stipple != default_face->stipple
|              || s->row->mouse_face_p))
|         || s->hl == DRAW_MOUSE_FACE
|         || ((s->hl == DRAW_IMAGE_RAISED || s->hl == DRAW_IMAGE_SUNKEN)
|             && s->row->fill_line_p)))
|       s->extends_to_end_of_line_p = 1;

The condition marked with `==>' inhibits restoring highlighted
void column. Removing this condition settles the problem.

I can't understand why this condition is there, so I have no idea
of whether this condition may be simply removed or not.

-- 
Kyotaro HORIGUCHI





reply via email to

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