sc/source/ui/app/scmod.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
New commits: commit b29f2a8b00f82a16bee5aaea579ccaab691202ce Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Wed Feb 19 08:20:28 2025 +0100 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Wed Mar 19 07:55:32 2025 +0100 lok: don't invalidate on theme switch In LOK invalidation means: content was changed. Apart of tiles we send the background color so client already knows - has to redraw and new rendering state options also trigger notifications. LOK with this knowledge will request tiles in new theme variant if not having them already in the cache. Invalidation was causing the cache in WSD beeing cleared. What caused expensive redrawing of all tiles needed later. Especially visible when joining with new view or dark mode switching. Old logs: [ kitbroker_001 ] TRC KitQueue(2) - pop child-04c uno .uno:ChangeTheme {"NewTheme":{"type":"string","value":"Dark"}}| kit/KitQueue.cpp:410 ... [ kitbroker_001 ] TRC Should we trim our caches ?| kit/Kit.cpp:1057 [ kitbroker_001 ] TRC Document::ViewCallback [5] [LOK_CALLBACK_VIEW_RENDER_STATE] [SD;Dark].| kit/Kit.cpp:1158 [ kitbroker_001 ] TRC postMessage called with: client-04c canonicalidchange: viewid=5 canonicalid=1001 viewrenderedstate=SD;Dark| kit/Kit.cpp:832 [ kitbroker_001 ] TRC Document::ViewCallback [5] [LOK_CALLBACK_APPLICATION_BACKGROUND_COLOR] [1c1c1c].| kit/Kit.cpp:1158 [ kitbroker_001 ] TRC Document::ViewCallback end.| kit/Kit.cpp:1214 [ kitbroker_001 ] TRC Document::ViewCallback [5] [LOK_CALLBACK_INVALIDATE_TILES] [EMPTY, 1, 0].| kit/Kit.cpp:1158 [ kitbroker_001 ] TRC Document::ViewCallback end.| kit/Kit.cpp:1214 [ kitbroker_001 ] TRC Document::ViewCallback [5] [LOK_CALLBACK_CALC_FUNCTION_LIST] [hidetip].| kit/Kit.cpp:1158 [ kitbroker_001 ] TRC Document::ViewCallback end.| kit/Kit.cpp:1214 [ kitbroker_001 ] TRC Document::ViewCallback [5] [LOK_CALLBACK_VIEW_RENDER_STATE] [SD;Dark].| kit/Kit.cpp:1158 [ kitbroker_001 ] TRC Document::ViewCallback [5] [LOK_CALLBACK_APPLICATION_BACKGROUND_COLOR] [1c1c1c].| kit/Kit.cpp:1158 [ kitbroker_001 ] TRC Document::ViewCallback end.| kit/Kit.cpp:1214 [ kitbroker_001 ] TRC Document::ViewCallback [5] [LOK_CALLBACK_VIEW_RENDER_STATE] [SD;Dark].| kit/Kit.cpp:1158 [ kitbroker_001 ] TRC Document::ViewCallback [5] [LOK_CALLBACK_APPLICATION_BACKGROUND_COLOR] [1c1c1c].| kit/Kit.cpp:1158 [ kitbroker_001 ] TRC Document::ViewCallback end.| kit/Kit.cpp:1214 [ kitbroker_001 ] TRC Document::ViewCallback [4] [LOK_CALLBACK_INVALIDATE_TILES] [EMPTY, 1, 0].| kit/Kit.cpp:1158 [ kitbroker_001 ] TRC Removing smaller invalidation: EMPTY, 1, 0 -> 0 0 2147483647 2147483647 1 0| kit/KitQueue.cpp:231 [ kitbroker_001 ] TRC Document::ViewCallback end.| kit/Kit.cpp:1214 ... [ docbroker_001 ] TRC Removing invalidated tiles: part: 1, mode: 0, x: 0, y: 0, width: 2147483647, height: 2147483647, viewid: 1000| wsd/TileCache.cpp:282 ... [ docbroker_001 ] TRC TileCombined request for nviewid=1000 part=1 width=256 height=256 tileposx=0,3840,7680,11520,15360,19200,0,3840,7680,11520,15360,19200,0,3840,7680,11520,15360,19200,0,3840,7680,11520,15360,19200 tileposy=314880,314880,314880,314880,314880,314880,318720,318720,318720,318720,318720,318720,322560,322560,322560,322560,322560,322560,326400,326400,326400,326400,326400,326400 tilewidth=3840 tileheight=3840 ver=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 oldwid=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from wsd| wsd/DocumentBroker.cpp:4371 It makes big performance impact. Recently this code was reworked in 77ae7611fb2a670bb567718ce2cd3c4cc2fd9660 Signed-off-by: Szymon Kłos <szymon.k...@collabora.com> Change-Id: I4d295c526638ab199d50f284d962da411f18b7b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181860 (cherry picked from commit 6a7591039e0de8490fc5934ef1ed7238c3166646) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183056 Tested-by: Jenkins diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx index 083eafb0c745..84dfe7e4393c 100644 --- a/sc/source/ui/app/scmod.cxx +++ b/sc/source/ui/app/scmod.cxx @@ -238,7 +238,7 @@ void ScModule::ConfigurationChanged(utl::ConfigurationBroadcaster* p, Configurat } // if nothing changed, and the hint was OnlyCurrentDocumentColorScheme we can skip invalidate - const bool bSkipInvalidate = bUnchanged && eHints == ConfigurationHints::OnlyCurrentDocumentColorScheme; + const bool bSkipInvalidate = bKit ||(bUnchanged && eHints == ConfigurationHints::OnlyCurrentDocumentColorScheme); if (!bSkipInvalidate) { pViewSh->PaintGrid();