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();

Reply via email to