Status report: consultancy team, week 26, 2023


  • still twiddling the client side premultiply
  • 22.05 backports
  • fire another coverity round for online
  • explore using a cairo with RGBA order
  • Assertion in DocumentBroker::sendRequestedTiles fails on running cypress impress tests
    try to reproduce that without success
  • tdf#156067 special character popup regression pinned on me
  • debug sluggish redraws on scroll in calc
  • backport a pile of changes to 22.05
  • cool#6759 delta isn’t always aligned to allow Uint32Array so
    fix that breakage
  • backports, merges, ci fixups
  • cool#6762 Reduce calc scroll redraws, a lot of things trigger
    redraw in a row all fundamentally hooked off scolling
  • cool#6779 optimize unpremultiply
  • use rgba direction in online
    Push unpremul and reorder to client by caolanm · Pull Request #6707 · CollaboraOnline/online · GitHub
  • try some improvements for scrolling in calc
  • for at least debugging paint a checkerboard pattern in
    place of missing tiles.
  • for calc what looks to work the best for me is when
    fetching the contents of the viewport simply also fetch
    a viewport range of tiles above and below and then
    scrolling feels smooth
  • fix new crashtesting xls export crash/asserts
  • collate and document perf fixes of last two months
  • reproduce and bisect 23.05 brown bag drawing glitch


— Export of Caption for Images / OLE

  • Fix provided

— During conversion to PDF: Page numbers in the Table of Contents page are lost

  • Fix provided

— During conversion to PDF: Sections numbers are sometimes (often) converted to roman numbers

  • Started it


  • Continued working on Presentation view separation
    • This unearthed a different bug that I switched my attention to that is
      most likely related and had to be addressed first
    • Opening a document, then opening the same document from a different
      client gives the second client a (canonical) view id of 1000. This is wrong.
      View ids of 1000 shouldn’t exist as view ids are 1000 + size of clients. The
      only reason a view id of 1000 exists is because it hasn’t yet received the
      callback that sets its view id. And the reason for that was that internally
      EditableConfig is using a static variable and there’s a check in
      .uno:ChangeTheme where it doesn’t change the theme if the theme name is the
      same. So no theme name change, so no kit callback, so no view id
      invalidation. Should be fixed after my patch is pushed, shouldn’t get view
      ids of 1000 anymore.
  • Fixed bug where on dark mode scrolling up and down would leave behind
    white color due to the background behind the tiles being hardcoded to white,
    now is the actual document color.


Add basic interoperable document theming to Calc & Writer

  • OOXML Theme color round-trip for cell text color, background color and
    border color
  • Works now, but kind-of messy because Calc OOXML export is messy
  • Theme export (theme1.xml) in Calc
  • need to work on putting the theme info at a proper place - currently
    always to the first SdrPage
  • probably best to add into SdrModel (also for Writer)
  • Started with undo/redo support and char level text color support (editeng
    level - not per cell)