diff options
author | Henry Castro <hcastro@collabora.com> | 2020-09-23 10:59:44 -0400 |
---|---|---|
committer | Henry Castro <hcastro@collabora.com> | 2020-09-28 14:32:27 +0200 |
commit | 0a8be32f6130a4b84cd3f9ca70f6109dd78bf434 (patch) | |
tree | 5aa06aa77adfd09378ed03a516d8d88e725710d7 /sfx2 | |
parent | 41f6f56c54277d3e1bb1c6fe84393b5abbc6731d (diff) |
lok: sidebar: avoid deactivation when the sidebar is painting
When two views (SfxViewFrame) get activated and deactivated
frequently when one view grab the focus and lose focus (respectively),
in multiple user this is not true, both users have the view
active at the same time.
The patch removes the overhead when painting a sidebar window
to avoid unnecessary deactivation.
Change-Id: Ica5837c9f2eda5db1bee69ec2297e54c4845d467
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103263
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/appl/app.cxx | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sfx2/source/appl/app.cxx b/sfx2/source/appl/app.cxx index 29162c725522..2bf0e9785555 100644 --- a/sfx2/source/appl/app.cxx +++ b/sfx2/source/appl/app.cxx @@ -73,6 +73,7 @@ #include <eventsupplier.hxx> #include <sfx2/dockwin.hxx> #include <shellimpl.hxx> +#include <comphelper/lok.hxx> #include <unotools/saveopt.hxx> #include <svtools/helpopt.hxx> @@ -296,7 +297,9 @@ void SfxApplication::SetViewFrame_Impl( SfxViewFrame *pFrame ) { if ( bTaskActivate ) NotifyEvent( SfxViewEventHint( SfxEventHintId::DeactivateDoc, GlobalEventConfig::GetEventName(GlobalEventId::DEACTIVATEDOC), pOldFrame->GetObjectShell(), pOldFrame->GetFrame().GetController() ) ); - pOldFrame->DoDeactivate( bTaskActivate, pFrame ); + + if ( !comphelper::LibreOfficeKit::isDialogPainting() ) + pOldFrame->DoDeactivate( bTaskActivate, pFrame ); if( pOldFrame->GetProgress() ) pOldFrame->GetProgress()->Suspend(); |