# Status report: consultancy team, week 16, 2024

**URL:** <https://forum.collaboraonline.com/t/status-report-consultancy-team-week-16-2024/2551>\
**Category:** Status reports\
**Created:** [April 22, 2024, 9:03am UTC](https://forum.collaboraonline.com/t/status-report-consultancy-team-week-16-2024/2551 "2024-04-22T09:03:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![vmiklos](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.collaboraonline.com/vmiklos/32/787_2.png) [@vmiklos](https://forum.collaboraonline.com/u/vmiklos)\
**Post date:** [April 22, 2024, 9:03am UTC](https://forum.collaboraonline.com/t/status-report-consultancy-team-week-16-2024/2551/1 "2024-04-22T09:03:45Z")

</div>

# Caolan

- [https://gerrit.libreoffice.org/c/core/+/165769](https://gerrit.libreoffice.org/c/core/+/165769) rework that to  
be more simple
- [integration\_tests/multiuser/writer/invalidations\_spec.js is failing · Issue #8768 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/issues/8768)  
integration\_tests/multiuser/writer/invalidations\_spec.js is failing  
 → [try adding {force: true} to leaflet-layer clicks by caolanm · Pull Request #8772 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/pull/8772)
- try watchdog profiling on demo.eu again with its 24.04 preview
- fix some ci failures with stray quotes  
 → [unwanted extra quote at end of true in json by caolanm · Pull Request #8776 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/pull/8776)
- debug out of sync incremental build as ci failure source
- fix cool#8768 cypress ci failures
- combine various kitbrokers together in watchdog profile
- debugging shows inconsistency between calc+writer and impress  
wrt spelling in rendersettings  
 → [https://gerrit.libreoffice.org/c/core/+/166176](https://gerrit.libreoffice.org/c/core/+/166176)  
 → [on joining an existing session calc/writer can use new users spell pref by caolanm · Pull Request #8790 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/pull/8790)
- debug cool#8792 multiple invalidations seen in calc with  
multiple users at high row/col pos
- calc, unlike writer, isn’t stable wrt screen positions at  
different zoom levels, so the same places in two views of different  
zooms is at a different position, regardless of whether expressed  
as twips.
- Delete sheet with comments add same comments to the new  
sheet  
 → [if a sheet is removed or moved, re-request comment positions by caolanm · Pull Request #8794 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/pull/8794)
- pivot table export crash  
 → [https://gerrit.libreoffice.org/c/core/+/166240](https://gerrit.libreoffice.org/c/core/+/166240)
- hardening flags  
 → [https://gerrit.libreoffice.org/c/core/+/163312](https://gerrit.libreoffice.org/c/core/+/163312) (core)  
 → [default to using available compiler hardening flags by caolanm · Pull Request #8799 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/pull/8799) (online)
  - immediately falls over with a detected crash
  - fix that too

- dark theme from nextcloud not honoured in 23.05
- 24.04 test perf state
- backport to 23.05
- do revert of early theme
- debug watchdog some more

# Mike

\*\* SVG rendering issues in Writer  
\*\*\* Looks like the problem is in VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D (drawinglayer/source/processor2d/vclprocessor2d.cxx)  
\*\*\* It gets a font with an integer size: primitive2d::getVclFontFromFontAttribute  
\*\*\* Likely we need then to apply additional MapMode to the output device, to fix the difference between the font height/width and aFontScaling/aFontSize.getX/Y  
\*\*\* The exact position of the next character node is determined in SvgCharacterNode::createSimpleTextPrimitive (svgio/source/svgreader/svgcharacternode.cxx)  
\*\*\* Both use TextLayouterDevice, which can make use of fFontScale\* arguments passed to its setFontAttribute, to make up the error in all its getters  
\*\*\* But that doesn’t work, the actual text width in RenderTextSimpleOrDecoratedPortionPrimitive2D is larger than what would be calculated in createSimpleTextPrimitive ☹  
\*\*\* The position of : was more to the right in 7.0 compared to 24.2 (even though the actual rendering of the Tititi text was identical).  
\*\*\* Initial regression after [1fa731d03ba0f22cb9392a578124ea977eaab2e9 - core - Gitiles](https://git.libreoffice.org/core/+/1fa731d03ba0f22cb9392a578124ea977eaab2e9)  
\*\*\* Final regression after [a42f5faac7c6d4590e632cf40e3ba9eb618e6f56 - core - Gitiles](https://git.libreoffice.org/core/+/a42f5faac7c6d4590e632cf40e3ba9eb618e6f56)  
\*\*\* Likely needs making DXArray use doubles  
\*\*\* =\> needs all OutputDevice conversion utilities have double variants  
\*\*\* It turns out, that font size calculations are highly imprecise for small font sizes =\> SvgCharacterNode::createSimpleTextPrimitive needs to multiply several times to get better result  
\*\*\* [160702 – Wrong and unstable positioning of text parts in SVG](https://bugs.documentfoundation.org/show_bug.cgi?id=160702)  
\*\*\* It turned out, that OutputDevice::GetTextBoundRect isn’t correct for text width, because e.g. a space gives an empty bound rectangle  
\*\*\* So needs to return double from OutputDevice::GetTextArray, and double variants of GetTextWidth / getTextHeight

- Caolan found a crashtesting failure\<200b\> after 690526f95e3ee4fd25bb2c987e093543e4bc435b  
\*\* [https://gerrit.libreoffice.org/c/core/+/166101](https://gerrit.libreoffice.org/c/core/+/166101)
- tdf#160700  
\*\* Found the problem  
\*\* [https://gerrit.libreoffice.org/c/core/+/166266](https://gerrit.libreoffice.org/c/core/+/166266)

# Tomaz

PDF Reader - Create comments / add notes – improve slide & draw commenting

- Code reading around the annotations
- The issue with PDF annotations is that they are quite advanced in  
terms of what they support
  - for example:
    - “inline” annotation displays the annotation text inline in the  
document in a text box
    - “polygon” annotation displays a the annotation as a polygon in  
the document
    - “polyline” as a polyline
    - “arrows” is similar to connectors or arrows
    - “stamps” are images

  - the annotations can also be freely resized and moved
  - this looks very similar to various SdrObject objects instead of  
current implementation as handles
    - we would need to manually implement all that

  - so because of this the idea is to refactor the annotations to be a  
special kind of SdrObject
  - with that we get many things for free - inline text editing and such

- First task - move the “Annotation” object into svx and the list of  
objects from sd::Page to SdrPage
  - done that mostly - after refactoring and moving the annotations  
still work as previously

- Created an AnnotationObject - derives from SdrRectObj but could be  
changed to something different in the future
  - create and insert the object instead of the special SdrHdl (handle)  
object (and AnnotationTag deriving from SmartTags)
  - first need to support the “comment” annotation functionality  
available for comments in Draw/Impress - keeping the same look and feel  
of as before
  - WIP…

# Miklos

Worked on:

- [Copy&paste: less push of the current selection to the clients · Issue #8648 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/issues/8648)
- [Calc: paste fails for 2 rows which are not next to each other · Issue #8789 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/issues/8789)
- [Paste button on home not working · Issue #8806 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/issues/8806)
