unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: martin rudalics <rudalics@gmx.at>
Cc: jan.h.d@swipnet.se, emacs-devel@gnu.org
Subject: Re: Changes in frame/window code
Date: Mon, 28 Jul 2014 21:15:37 +0300	[thread overview]
Message-ID: <838undgxiu.fsf@gnu.org> (raw)
In-Reply-To: <53D68806.9080101@gmx.at>

> Date: Mon, 28 Jul 2014 19:27:34 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: emacs-devel@gnu.org
> 
> I still have no feeling for how hscrolling works with bidi text.  IIUC
> with L2R and R2L paragraphs in the same window, like
> 
> LLLLLLLLLLLLLLLLLLLLLL2RRRRRRRRRRRRRRRRRRR
> 
>                 RRRRRRR2LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
> 
> hscrolling will NOT preserve the aspect that the two "2" visually appear
> above each other.  Correct?

Yes.  As the hscroll amount grows, the characters in the L2R lines
will move to the left, while characters in the R2L lines will move to
the right.

>  > I feel there's some misunderstanding here, because I don't believe
>  > you'd ask about such trivia.  What am I missing?  What's bothering
>  > you?
> 
> What you said earlier, that "Horizontal scrolling of mixed-direction
> paragraphs is a hard problem".

It's a hard problem primarily because it's hard to know what is TRT,
and there's no "prior art" to follow.

>  >> Is the size of the slider correct in the sense described above?
>  >
>  > Yes.
> 
> Did you check with a window containg say one huge L2R line and all
> other lines short and one huge R2L line and all other lines short?

Yes.  Again, this is just normal hscroll, which works with
bidirectional text since v24.1.  The fact that hscroll is triggered by
clicking the scroll bar does not matter, as long as the direction of
the scroll is interpreted correctly.  The changes I made simply took
care of translating the scroll-bar clicks to hscroll amount.

> The whole idea would be then to change the positions of
> 
>        start = w->hscroll * FRAME_COLUMN_WIDTH (WINDOW_XFRAME (w));
> 
> and
> 
>        end = start + box_width;
> 
> on lines 15808 and 15810 of xdisp.c according to the value of
> `current-bidi-paragraph-direction'.  But how?

You need to reverse the meaning of START and END for the R2L case:

   end = whole - w->hscroll * FRAME_COLUMN_WIDTH (WINDOW_XFRAME (w));
   start = end - box_width;

(Note that current-bidi-paragraph-direction returns the results at
buffer's point, so you will need to temporarily go to the window's
point marker.)



  reply	other threads:[~2014-07-28 18:15 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 [this message]
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
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=838undgxiu.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=jan.h.d@swipnet.se \
    --cc=rudalics@gmx.at \
    /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).