[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problems with move_it_in_display_line_to X when tabs exist.
From: |
Keith David Bershatsky |
Subject: |
Re: Problems with move_it_in_display_line_to X when tabs exist. |
Date: |
Wed, 06 Dec 2017 08:24:17 -0800 |
I wanted to give you an update on my efforts. I was unable to isolate
different results due to the platform upon which Emacs was built/run. I did,
however, track down a few areas in Emacs 26 where it->pixel_width is being set
incorrectly when I am running my custom code. When the
continuation_lines_width is incorrect, the code in the vicinity of line 28212
sets an erroneous it.pixel_width. Inasmuch as I am moving along the length of
the current line by it.pixel_width, the X and/or HPOS coordinates get skewed.
I tried manually setting continuation_lines_width to 0 at both locations
mentioned below, and it.pixel_width gets reported correctly. However, this
solution is not ideal because the STRETCH does not shrink and expand as it
would normally do as things change in the buffer; e.g., adding/removing the
right vertical scroll-bar affects whether the STRETCH would normally be either
1 or 2 columns wide. I feel as though I am zeroing-in on the underlying issue,
but more work is ne
eded in the coming days/weeks as time permits:
xdisp.c:9563
it->continuation_lines_width += it->current_x;
xdisp.c:21671
it->continuation_lines_width += x;
xdisp.c:28212
it->pixel_width = next_tab_x - x0;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATE: [12-04-2017 08:26:04] <04 Dec 2017 18:26:04 +0200>
FROM: Eli Zaretskii <address@hidden>
>
> > Date: Sun, 03 Dec 2017 19:01:47 -0800
> > From: Keith David Bershatsky <address@hidden>
> > Cc: address@hidden
> >
> > I built Emacs 26 for Windows (using my modification patch) and ran the same
> > series of tests along with taking a screen-shot at the link below.
> > it.pixel_width is correct on Emacs 26 for Windows, whereas it.pixel_width
> > is wrong on Emacs 26 for OSX 10.6.8.
>
> I'm surprised you see a difference. This code is supposed to be
> platform independent. So I guess you need to examine all the places
> in xdisp.c which are "#ifded NS" or "#ifndef NS".
>
> * * *
- Re: Problems with move_it_in_display_line_to X when tabs exist., (continued)
- Re: Problems with move_it_in_display_line_to X when tabs exist., Eli Zaretskii, 2017/12/02
- Re: Problems with move_it_in_display_line_to X when tabs exist., Keith David Bershatsky, 2017/12/02
- Re: Problems with move_it_in_display_line_to X when tabs exist., Keith David Bershatsky, 2017/12/02
- Re: Problems with move_it_in_display_line_to X when tabs exist., Keith David Bershatsky, 2017/12/03
- Re: Problems with move_it_in_display_line_to X when tabs exist., Keith David Bershatsky, 2017/12/03
- Re: Problems with move_it_in_display_line_to X when tabs exist., Keith David Bershatsky, 2017/12/04
- Re: Problems with move_it_in_display_line_to X when tabs exist.,
Keith David Bershatsky <=