From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Changes in frame/window code
Date: Mon, 18 Aug 2014 10:31:38 +0200 [thread overview]
Message-ID: <53F1B9EA.6030808@gmx.at> (raw)
In-Reply-To: <83wqa7cfoy.fsf@gnu.org>
>> (1) When dragging I cannot move the slider entirely to the right and
>> make the first column of R2L lines visible until I release the mouse
>> button. I suppose this is due to some off-by-one failure here but
>> there might be more to it.
>
> I'm not sure this is at all related to R2L lines. I wrote a trivial
> function which just displays the mouse event, and bound it to clicks
> on the horizontal scroll bar. When I drag the scroll bar, even in an
> entirely L2R buffer, I see some strange phenomena: e.g., more often
> than not, when I drag the bar all the way to the right, releasing the
> mouse button without moving the mouse reports slightly different
> coordinates than the ones reported before releasing the mouse.
> Moreover, many time the 2nd coordinate reported after releasing the
> mouse is -1. Try it. Maybe it's Windows-specific, I don't know.
I suppose the -1 is due to the
si.nPage = min (portion, si.nMax) + 1;
you mention below and that's likely the culprit for the effect described
in (1).
> Btw, it looks like the information returned by mouse events on the
> horizontal scroll bar is not described anywhere, not even in NEWS.
> Your use of (cdr (nth 2 start-position)) in
> scroll-bar-horizontal-drag-1 got my jaw dropped for a few seconds,
> before I realized it was not the Y coordinate...
I'm not sure yet where to eventually put this and whether it's the right
solution at all. IIUC the scroll bar area on the right of the thumb stands
for w->hscroll in R2L text and this was the easiest way to pass on that
value from what GetScrollInfo returns without consing. If you have any
suggestion how to handle this cleanly I'd be all ears.
> Also, I don't understand the subtlety of +1 in setting up the scroll
> info, e.g.:
>
> /* Allow nPage to be one larger than nPos so we don't allow to scroll
> an already fully visible buffer. */
> si.nPage = min (portion, si.nMax) + 1;
> si.nPos = min (position, si.nMax);
>
> The comment doesn't correspond to the code, and I couldn't understand
> what's behind this trick.
The idea is that if I do not add 1 to nPage, the displayed thumb gets
too small. This means that although I see the entire text I can still
scroll it and make the first column disappear, which is distracting.
I've not found a better solution yet. In any case, this is my probably
poor interpretation of how SetScrollInfo works (compare
http://msdn.microsoft.com/en-us/library/windows/desktop/bb787595%28v=vs.85%29.aspx
The nPage member must specify a value from 0 to nMax - nMin +1. The nPos
member must specify a value between nMin and nMax - max( nPage– 1, 0)).
And yes, the comment is obviously wrong.
>> (2) Sometimes during dragging the slider starts moving for-/backward in
>> some erratic fashion. I'm not yet sure whether this is caused by an
>> hmargin issue or something else.
>
> I could only see this in the very first line of the tutorial. There
> was an old and very subtle bug in xdisp.c, revealed by
> set_horizontal_scroll_bar, which caused broken cursor motion in that
> line. This is now fixed in r117711 on the trunk. If you still see
> something like that, and it's not related to the few L2R lines in the
> tutorial, please report a bug with the recipe.
I can see it only with my personal setup here. With emacs -Q I can
reproduce it by setting
(set-frame-parameter nil 'right-divider-width 7)
and scrolling the tutorial in the left window of a C-x 3 split frame.
>> (3) Line 121 (written backwards as)
>>
>> אם הסמן נמצא באמצע מילה, M-f זז לסוף המילה. אם הסמן נמצא בין שתי מלים,
>>
>> of the tutorial presents a special problem: When I'm repeatedly doing
>> `next-line' on the rightmost column before that line and are about
>> to move to that line I enter some strange sort of loop with the
>> slider in the center of the scroll bar trying to move back- and
>> forward. C-g gets me out of it but I can't tell so far why I'm stuck
>> there.
>
> This is now fixed in r117447 on the release branch. The previous
> revision fixed bug #18277.
Fine. These work well now.
martin
next prev parent reply other threads:[~2014-08-18 8:31 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-22 13:42 Changes in frame/window code martin rudalics
2014-07-23 10:45 ` Dmitry Antipov
2014-07-23 12:48 ` martin rudalics
2014-07-23 15:05 ` set-frame-height glitch [Was: Re: Changes in frame/window code] Dmitry Antipov
2014-07-23 15:36 ` martin rudalics
2014-07-23 15:26 ` Changes in frame/window code martin rudalics
2014-07-23 16:14 ` martin rudalics
2014-07-23 10:59 ` Dmitry Antipov
2014-07-23 12:48 ` martin rudalics
2014-07-27 13:32 ` martin rudalics
2014-07-27 14:50 ` Jan Djärv
2014-07-27 18:14 ` martin rudalics
2014-07-27 14:50 ` Eli Zaretskii
2014-07-27 18:07 ` Eli Zaretskii
2014-07-27 18:19 ` martin rudalics
2014-07-28 4:48 ` Dmitry Antipov
2014-07-28 9:27 ` martin rudalics
2014-07-28 18:22 ` Hint on Xaw3d scroll bar colors issue [Was: Re: Changes in frame/window code] Dmitry Antipov
2014-07-29 9:21 ` martin rudalics
2014-07-29 11:27 ` Dmitry Antipov
2014-07-29 14:01 ` martin rudalics
2014-07-29 15:42 ` Jan Djärv
2014-07-29 16:54 ` Dmitry Antipov
2014-07-29 17:17 ` Jan Djärv
2014-07-30 16:44 ` martin rudalics
2014-07-29 16:43 ` Bingo [Re: Hint on Xaw3d scroll bar colors issue [Was: Re: Changes in frame/window code]] Dmitry Antipov
2014-07-29 17:14 ` Jan Djärv
2014-07-30 16:44 ` martin rudalics
2014-07-29 9:19 ` Changes in frame/window code martin rudalics
2014-07-29 11:28 ` Dmitry Antipov
[not found] ` <83tx62hane.fsf@gnu.org>
2014-07-28 9:26 ` martin rudalics
2014-07-28 13:38 ` Eli Zaretskii
2014-07-28 13:57 ` martin rudalics
2014-07-28 14:25 ` Eli Zaretskii
2014-07-28 17:27 ` martin rudalics
2014-07-28 18:15 ` Eli Zaretskii
2014-07-29 9:20 ` martin rudalics
2014-07-29 9:41 ` Eli Zaretskii
2014-07-29 9:55 ` Eli Zaretskii
2014-07-29 10:47 ` martin rudalics
2014-07-29 10:23 ` Eli Zaretskii
2014-07-29 10:47 ` martin rudalics
2014-07-29 11:33 ` Eli Zaretskii
2014-07-29 14:02 ` martin rudalics
2014-07-29 14:51 ` Eli Zaretskii
2014-07-29 15:43 ` martin rudalics
2014-07-29 16:14 ` Eli Zaretskii
2014-07-29 18:23 ` martin rudalics
2014-07-29 18:34 ` Eli Zaretskii
2014-07-30 16:05 ` martin rudalics
2014-07-30 16:27 ` Eli Zaretskii
2014-07-30 16:45 ` martin rudalics
2014-07-30 17:20 ` Eli Zaretskii
2014-07-30 17:36 ` martin rudalics
2014-07-30 17:53 ` Eli Zaretskii
2014-07-31 8:49 ` martin rudalics
2014-07-31 10:06 ` Eli Zaretskii
2014-07-31 10:09 ` martin rudalics
2014-07-31 11:06 ` Eli Zaretskii
2014-07-31 11:35 ` martin rudalics
2014-08-01 9:40 ` Eli Zaretskii
2014-08-01 10:25 ` martin rudalics
2014-08-01 13:12 ` Eli Zaretskii
2014-08-01 15:29 ` martin rudalics
2014-08-01 16:33 ` Eli Zaretskii
[not found] ` <53EE2CD5.50603@gmx.a>
2014-08-15 15:52 ` martin rudalics
2014-08-15 16:40 ` Eli Zaretskii
2014-08-16 9:35 ` martin rudalics
2014-08-16 11:29 ` Eli Zaretskii
[not found] ` <53EF609C.2090303@gmx>
2014-08-16 13:46 ` martin rudalics
2014-08-16 14:43 ` Eli Zaretskii
2014-08-16 16:07 ` martin rudalics
2014-08-16 16:09 ` martin rudalics
2014-08-16 16:19 ` martin rudalics
2014-08-17 15:13 ` Eli Zaretskii
2014-08-18 8:31 ` martin rudalics [this message]
2014-08-18 15:00 ` Eli Zaretskii
2014-08-18 16:11 ` martin rudalics
2014-08-18 16:22 ` Eli Zaretskii
2014-08-19 15:15 ` Eli Zaretskii
2014-08-20 14:45 ` Eli Zaretskii
2014-08-20 15:32 ` martin rudalics
2014-08-20 15:32 ` martin rudalics
2014-08-20 15:49 ` Eli Zaretskii
2014-08-28 9:40 ` martin rudalics
2014-08-28 15:10 ` Eli Zaretskii
2014-08-28 19:05 ` martin rudalics
2014-08-28 19:15 ` Eli Zaretskii
2014-08-29 9:00 ` martin rudalics
2014-08-29 9:53 ` Eli Zaretskii
2014-08-31 15:48 ` Eli Zaretskii
2014-08-31 16:22 ` martin rudalics
2014-08-28 15:56 ` Glenn Morris
2014-08-28 19:04 ` martin rudalics
2014-07-29 20:35 ` Jan Djärv
2014-07-29 10:44 ` martin rudalics
2014-07-29 15:29 ` Jan Djärv
2014-07-29 16:34 ` Eli Zaretskii
2014-07-31 16:18 ` Stefan Monnier
2014-07-31 16:37 ` Tassilo Horn
2014-07-31 16:53 ` martin rudalics
2014-08-27 17:13 ` Drew Adams
2014-07-31 17:32 ` Eli Zaretskii
2014-07-31 16:38 ` Eli Zaretskii
2014-07-31 16:53 ` martin rudalics
2014-09-03 16:17 ` martin rudalics
2014-09-04 18:30 ` Glenn Morris
2014-09-05 10:47 ` martin rudalics
2014-09-05 17:14 ` Glenn Morris
2014-07-27 18:15 ` martin rudalics
2014-07-27 17:14 ` Stefan Monnier
2014-07-27 18:15 ` martin rudalics
2014-07-27 20:28 ` Glenn Morris
2014-08-05 1:42 ` Jay Belanger
2014-08-05 8:38 ` martin rudalics
2014-08-05 14:37 ` Jay Belanger
2014-08-05 15:45 ` martin rudalics
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=53F1B9EA.6030808@gmx.at \
--to=rudalics@gmx.at \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
/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).