sc/source/ui/app/scmod.cxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit f4817fdfe0861bef2f71e7ae5dfd309573714761
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Wed Feb 19 08:20:28 2025 +0100
Commit:     Michael Meeks <michael.me...@collabora.com>
CommitDate: Wed Feb 19 17:38:41 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
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Michael Meeks <michael.me...@collabora.com>
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>

diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index 2dfdb0f0de5b..487291113747 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -235,7 +235,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