Problem with reading 'writing-mode' ODF attribute in Impress

Regina Henschel rb.henschel at
Wed Aug 31 09:55:49 UTC 2022

Hi Miklos,

Miklos Vajna schrieb am 29.08.2022 um 09:28:

>> Problem is, that style:writing-mode="tb-lr" (OOXML vert="eaVert") and
>> style:writing-mode="tb-lr" (OOXML vert="mongolianVert") are correctly loaded
>> into 'WritingMode' API-attribute, but loext:writing-mode="bt-lr" (OOXML
>> vert="vert270") and my new loext:writing-mode="tb-rl90" (OOXML vert="vert")
>> are not loaded. And I have no clue where they are lost.
> You could try to see which C++ class implements the setPropertyValue()
> member function handling your WritingMode. Perhaps as a start, log the
> value of rPropertyValue in SvxShape::setPropertyValue(). If you see
> WritingMode there, then you can step in the debugger to see where is
> that handled.

That was a good tip. I found my error, that the property was not 
actually set at the object and therefore the default 0 was used. But 
after fixing that, I still got a 0 on opening.

I then used test files, where I removed 'writing-mode' attributes. I 
have found, that the 0 comes from the 'style:writing-mode' in the 
paragraph properties inside the graphic style. From point of standard it 
is correct that it takes precedence over the 'writing-mode' in the 
graphic properties inside the graphic style.

I will try now to change ContextFilter() method to get a suitable markup 
on saving. I need to be careful to not conflict with frames. But I am 
hopeful to find a solution.

Kind regards,

More information about the LibreOffice mailing list