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: emacs-devel@gnu.org
Subject: Re: Changes in frame/window code
Date: Mon, 28 Jul 2014 16:38:14 +0300	[thread overview]
Message-ID: <83fvhlhad5.fsf@gnu.org> (raw)
In-Reply-To: <53D6172A.5010909@gmx.at>

> Date: Mon, 28 Jul 2014 11:26:02 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: emacs-devel@gnu.org
> 
>  >> Sounds pretty hairy, tho ...  With bidi text as above do you have a
>  >> fixed text width?
>  >
>  > I said "simple", didn't I?  The width is not fixed.
>  >
>  >> In which (virtual L2R) column does R2L text start?
>  >
>  > Sorry, I don't understand the question.  Are you asking about the
>  > "normal" display of R2L text, or are you asking about scrolling?
> 
> If you have
> 
> 
> L2R text here ....
> 
>             ..... and R2L text here what is the L2R position after here?
> 
> 
> If the text width is not fixed how can I calculate the width of a R2L
> line as it is displayed including any space between the left edge of the
> display until where the text ends?

If you include the space on the left, then the width of an R2L display
line is always exactly equal to the window width.  This is how the
display engine computes the width of the stretch glyph that represents
"the space on the left".

If you want the line width without the stretch, then you calculate it
exactly like with L2R lines: columns and line widths are computed in
the logical order.

>  > What I added only works well if the entire visible portion of the
>  > buffer has the same paragraph direction, either L2R or R2L.  If you
>  > have paragraphs in both directions visible, they will scroll in
>  > opposite directions (because columns are counted in logical order, not
>  > in visual order).
> 
> IIUC this means that the slider width must be calculated paragraph-wise
> and position and size of the slider are meaningful only with respect to
> the paragraph point is currently in.

Yes.  But that is true for strictly L2R text as well, no?  I mean, the
size of the scroll-bar thumb should depend on the width of the line at
point, right?

>  > Horizontal scrolling of mixed-direction paragraphs is a hard problem.
>  > A WYSIWYG word processor could behave as if the text width were fixed
>  > (that's what happens on paper), but Emacs is not a WYSIWYG word
>  > processor and supports line continuation.
> 
> Admittedly, horizontal scroll bars are not very useful when line
> continuation is on.

Of course, but that's not what I meant.  I meant to point out how
Emacs in its default text display modes differs from WYSIWYG word
processors, where fixed width of the text comes in naturally.

>  > So it's not clear what to
>  > do here.  The code I added is a stop-gap: it at least will DTRT when
>  > the text on screen has the same base direction.  We must have at least
>  > that, or we will be lynched.
> 
> Does it work now in that case?

It does work correctly when you click on the scroll-bar arrows or
between them and the slider.

It doesn't work when you drag the slider.  When you drag the slider,
the text is scrolled in the wrong direction.  The underlying problem
is that the slider starts in a wrong position -- it should be all the
way to the right, not to the left.  AFAIU, this can only be fixed on
the C level.

(Btw, shouldn't GTK scroll bars already support bidirectional text out
of the box?  Perhaps you need to set some flag(s) to get that.)



  reply	other threads:[~2014-07-28 13:38 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 [this message]
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
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=83fvhlhad5.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --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).