From: Robert Pluim <rpluim@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 43405@debbugs.gnu.org, juri@linkov.net
Subject: bug#43405: Tool bar item doesn't align to the right edge
Date: Tue, 22 Sep 2020 17:14:18 +0200 [thread overview]
Message-ID: <m2zh5h3ktx.fsf@gmail.com> (raw)
In-Reply-To: <83r1qtx4dg.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 22 Sep 2020 17:39:23 +0300")
>>>>> On Tue, 22 Sep 2020 17:39:23 +0300, Eli Zaretskii <eliz@gnu.org> said:
>> From: Robert Pluim <rpluim@gmail.com>
>> Cc: 43405@debbugs.gnu.org, juri@linkov.net
>> Date: Mon, 21 Sep 2020 22:07:51 +0200
>>
Eli> I'd first try to repeat what we do for :align-to support: insert a
Eli> stretch glyph of a suitable width, computed using it->last_visible_x
Eli> and the width of the image for the button that has to be
Eli> right-justified. See produce_stretch_glyph (except that most of it is
Eli> not relevant, since :align-to supports a lot of functionalities).
>>
>> OK, that would work, but then you could only right justify a single
>> item, which would be different from what you can do with the GTK tool
>> bar
Eli> No, it will work with more than one as well, you just need to loop
Eli> twice over all the buttons and keep track of all those which should be
Eli> right-justified.
OK, weʼre saying the same thing with different words: everything to
the right of this stretch glyph needs its width calculated (and its
x-coordinate adjusted)
>> (and I see no reason to restrict this to tool bar buttons, I see
>> at least org-mode wants to right-justify headline tags)
Eli> What are "headline tags" in Org, and how are they related?
Org headlines look like this:
* This is a headline :tag1:tag2:tag3
The tags are right justified by default, but this is done by inserting
spaces, which fails with non-monospace fonts. Thereʼs a patch to
org-mode to do this by instead inserting a space with an :align-to
property, but that code has to calculate the value to specify in lisp,
which I strongly suspect will turn out to be slow, hence doing it in
redisplay would be better (and perhaps more likely to be accurate).
Eli> Your original description said:
>> So let's assume we do this by exending the display spec to allow
>>
>> '(:right-justify t)
>>
>> which would mean to move everything on this line as far to the right
>> in the window as possible.
Eli> "Everything on this line" on which line?
Sorry, everything on this line after whatever element has that display
spec. Everything before stays where it is (and only the first
:right-justify property found in the line is acted upon).
Eli> Do you mean you want to display an entire screen line justified to the
Eli> right? Then we already do something like that with R2L lines
Eli> (although there we also reorder display elements, something you don't
Eli> need here).
No, I just want to be able to produce:
This is text This is right justified
And have the "This is right justified" stay right justified as the
window size and line content changes (unless the user deletes that
stretch glyph in the middle).
If the line became longer than could be displayed in the available
window width, then I think the stretch glyph in the middle would just
be treated as a single space (and hence line continuation/truncation
would work as normal).
Robert
next prev parent reply other threads:[~2020-09-22 15:14 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <jwvd02uygtp.fsf-monnier+emacs@gnu.org>
[not found] ` <87mu1xrjqw.fsf@gkayaalp.com>
[not found] ` <48ed4897-356c-4669-a330-1fdb5d65402b@default>
[not found] ` <CAP_d_8VYOrFJ6=3boUDvdxTQkEm=ZdUtE+nm2M+kuZdoCBg48g@mail.gmail.com>
[not found] ` <83lfhhijbl.fsf@gnu.org>
[not found] ` <871rj9uz12.fsf@gkayaalp.com>
[not found] ` <alpine.NEB.2.22.394.2009102307230453.22593@sdf.lonestar.org>
[not found] ` <E1kGaUK-0004lt-IG@fencepost.gnu.org>
[not found] ` <875z8k4wv8.fsf@posteo.net>
[not found] ` <83pn6shjni.fsf@gnu.org>
[not found] ` <20200911074445.GB5194@tuxteam.de>
[not found] ` <87zh5uqdqm.fsf@mail.linkov.net>
[not found] ` <834ko1da33.fsf@gnu.org>
[not found] ` <87sgbloe5z.fsf@mail.linkov.net>
[not found] ` <83een5bkja.fsf@gnu.org>
[not found] ` <87v9ghlc5c.fsf@mail.linkov.net>
[not found] ` <83d02pbhny.fsf@gnu.org>
2020-09-14 19:18 ` bug#43405: Tool bar item doesn't align to the right edge Juri Linkov
2020-09-14 19:34 ` Eli Zaretskii
2020-09-15 18:14 ` Juri Linkov
2020-09-15 18:39 ` Eli Zaretskii
2020-09-16 19:29 ` Juri Linkov
2020-09-17 9:03 ` Robert Pluim
2020-09-17 13:45 ` Eli Zaretskii
2020-09-17 14:43 ` Robert Pluim
2020-09-17 14:54 ` Eli Zaretskii
2020-09-17 15:24 ` Robert Pluim
2020-09-17 15:33 ` Eli Zaretskii
2020-09-18 8:38 ` Robert Pluim
2020-09-18 8:58 ` Eli Zaretskii
2020-09-21 18:30 ` Robert Pluim
2020-09-21 19:04 ` Eli Zaretskii
2020-09-21 20:07 ` Robert Pluim
2020-09-22 14:39 ` Eli Zaretskii
2020-09-22 15:14 ` Robert Pluim [this message]
2020-09-22 15:26 ` Eli Zaretskii
2020-09-14 19:53 ` spvk
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=m2zh5h3ktx.fsf@gmail.com \
--to=rpluim@gmail.com \
--cc=43405@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=juri@linkov.net \
/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).