GNU bug report logs -
#43405
Tool bar item doesn't align to the right edge
Previous Next
Full log
Message #47 received at 43405 <at> debbugs.gnu.org (full text, mbox):
>>>>> On Fri, 18 Sep 2020 11:58:21 +0300, Eli Zaretskii <eliz <at> gnu.org> said:
>> OK, so I took a look, and Iʼm not sure itʼs possible with the native
>> tool bar. We have '(space :align-to right)', but that just inserts
>> space up to a specified location, everything subsequent is
>> appended. In order to calculate the correct location, Iʼd need to know
>> the width of everything that came after the space, which only
>> redisplay can tell us, unless thereʼs a function Iʼve missed?
Eli> The support for doing this with the native tool bar must be in C, and
Eli> should indeed be part of the display engine. So everything redisplay
Eli> knows should be at your fingertips.
Your fingertips maybe, not mine :-)
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.
At some point weʼd end up in 'gui_produce_glyphs' with a 'struct
iter' pointing at the char with that property set. Then:
remember it->current_x
loop over the iters until we hit eol or max_x, calling PRODUCE_GLPYHS
The final it->current_x minus the remembered one is the width of the remaining
glyphs on the line.
Now set it->current_x to the window right edge minus the width.
Does that sound like it would work? Is there a more direct way of
calculating that width? (I got lost in all the various move_to
functions).
Robert
This bug report was last modified 4 years and 267 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.