[Libreoffice] patch for preserving the table alignment

Noel Power nopower at novell.com
Fri Aug 12 02:45:35 PDT 2011


Hmm seems I really need to return to this, comparing on windows ( where 
we really have like for like fonts ) it seems the problem returns ( 
because the column width issue comes into play again )


On 18/07/11 10:41, Caolán McNamara wrote:
> On Fri, 2011-07-15 at 16:35 +0100, Noel Power wrote:
>> Hi Caolán
>>
>> could you have a look at this patch
>> http://cgit.freedesktop.org/libreoffice/writer/commit/?id=95351a519bec2833f5d936c20e3916a4e283b0f6
>>
>> This should be a nice stroll down memory lane for you as it seems
>> related to http://openoffice.org/bugzilla/show_bug.cgi?id=1291, yes
>> issue #1291 !!!
> Hmm, well I don't remember the code, I do remember the document itself,
> cause its a nasty.
>
> My intent with the SetFmtAttr is apparently to get a floating frame
> which shrinks right down the the size of the table contained in it,
> reset the positioning of the table so the left of the table is 0 from
> the left of the frame and the right 0 from the right of the frame so
> that it completely fills it widthwise.
>
> If "FULL" isn't actually "full width of the container", but automatic in
> a full-width-of-the-container, but clip-to-the-page-width, sort of way,
> that's a pain :-)
yes that is what seems to happen ( although I failed to find exactly 
where this is happening )  I can rule out ( afaics ) the table 
implementation, so I guess it is happening in the layout stuff ( which I 
have don't even have the teeniest clue about ). So the Frame in this 
case has shrunk to the correct width of the table ( which is greater 
that the page width in my case ) but the actual table width ( when you 
raise the table properties dialog ) is the page width. This is due to 
the "FULL" setting  ( corresponding to 'Automatic' in the Table 
properties ) which I guess is doing what it says on the tin, e.g. 
aligning with the page margins ( or I suppose really the container 
boundries or whichever is smaller it seems )

Bizarely: with either Left or 'From Left' alignment the a 'negative' 
right spacing is used to allow the table width to be larger than the 
container width. The right spacing value however will only influence the 
table width up to the container width ( or page width ) whichever is hit 
first
>
> I think I'd prefer an explicit horizontal setting which does the right
> thing, e.g. see if any of NONE/CENTER/LEFT do the right thing, rather
> than re-use the current setting which might be something weird like
> INSIDE, OUTSIDE or something and all we want is a table that completely
> fills the floating frame.
ok, how about a limited hack here, e.g.  if the horizontal setting is 
LEFT_AND_WIDTH ( which seems to be the converted table alignment setting 
in question for my test document and indeed the one from iz#1291 ) we 
set this at the Frame otherwise leave it as FULL. I suspect that 
LEFT_AND_WIDTH ( which I guess should try to fit the table into the 
container ( which is already sized ) aligned to the left with the right 
spacing adjusted to fit as appropriate ) probably would work in all 
cases but I wouldn't want to bet on it.
>
> FWIW, I suggest generally testing for changes in layout to existing docs
> with export to pdf before/after and with
>
> composite -compose difference old.pdf new.pdf - | identify -format %k -
did that for the document at iz#1291 and it shows no changes ( e.g. 
result of 1 ) on my system, I'd be happy to check any other documents 
you could suggest

Noel


More information about the LibreOffice mailing list