emacs-devel
[Top][All Lists]
Advanced

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

Re: bug#9782: 24.0.90; move-to-window-line not taking header line into a


From: Dmitry Gutov
Subject: Re: bug#9782: 24.0.90; move-to-window-line not taking header line into account
Date: Tue, 07 May 2013 11:41:00 +0400
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130328 Thunderbird/17.0.5

On 07.05.2013 6:54, Eli Zaretskii wrote:
One might think that `move-to-window-line' is also window-relative and
thus agnostic to the header line (that naturally follows if we consider
the header line a part of the window).

"Line" is a line of text, and move-to-window-line was written to go to
a line of text.

The question is how they're numbered. One might imagine that the "zeroth" line is covered by the header, so the first one visible is number one.

Note I'm not really arguing in favor in that change, since it won't help me get rid of the version check for 24.1-24.3 anyway.

We still need to compare the column values to see if the click happened
exactly inside the rectangle, not to the right or left of it.

Doesn't the overlay cover the entire rectangle?

And in `company-select-mouse', we need the row values to find out which
rectangle line was clicked (which candidate to select)

Isn't each rectangle a different string?


There's just one overlay, and it covers all of them (plus all text on the sides). Maybe what you're suggesting would be an improvement (I see dropdown-list.el also does that), but the current approach works fast enough, and it would have the advantage in a hypothetical situation when some of the text we need to "draw on" is already rendered via `display' property.

Taking the above into account, I think having a header-line-aware
version of `move-to-window-line' instead would be best.

??? But you don't want to _move_ anywhere, AFAIU.  You want to compute
a window-relative screen line number of a given position (I used point
in the above example, but that can be replaced by any buffer
position).  So how does move-to-window-line fit that bill?  Its
return value is undocumented, so you cannot really rely on that.

I mean fixing the row number <-> line number discrepancy from the other side, by making a wrapper for `move-to-window-line', the only function of the bunch that deals with line numbers. It's used in `company-pseudo-tooltip-show'.

Like suggested before, it would adjust the argument by 1 if
emacs-version >= "24", and the header line is present.

The function move-to-window-line is implemented in C, so it is
pointless to make it sensitive to Emacs version.

The wrapper will need to check the version because Emacs 23 and earlier don't need the adjustment.



reply via email to

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