summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPranav Kant <pranavk@collabora.co.uk>2017-12-05 02:20:13 +0530
committerPranav Kant <pranavk@collabora.co.uk>2017-12-05 14:16:24 +0530
commita00b653f55dd99f0e9ffcc585a66a15e7a7d845b (patch)
treebb4fbe7508f0be9784a371c317d25327d200d7a1
parent706707812b581cbc8f9afc2d72120cffd0c4c09d (diff)
lokdialog: Don't hide dialogs in case of LOK
We change views (using setView) a lot in case of LOK. Changing the view, without this patch, leads to InitShow on the dialog which means invalidation of the whole dialog even though there is nothing to invalidate. This decreases performance as it increases the dialog paint traffic through the LOK API. We don't need to hide the dialog once it's opened in case of LOK. This patch improves the multiview dialog performance considerably (can easily be noticed in GTV). Change-Id: If2b4ceb945ccd86da3d90bbbb0a0b9fbade43f30
-rw-r--r--sfx2/source/appl/workwin.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
index 4e228b4ffd8b..bdd99728d55e 100644
--- a/sfx2/source/appl/workwin.cxx
+++ b/sfx2/source/appl/workwin.cxx
@@ -18,6 +18,7 @@
*/
#include <config_features.h>
+#include <comphelper/lok.hxx>
#include <comphelper/processfactory.hxx>
#include <sfx2/docfile.hxx>
@@ -1461,6 +1462,9 @@ bool SfxWorkWindow::IsVisible_Impl()
void SfxWorkWindow::HidePopups_Impl(bool bHide, bool bParent, sal_uInt16 nId )
{
+ if (comphelper::LibreOfficeKit::isActive() && bHide)
+ return;
+
for (SfxChildWin_Impl* i : aChildWins)
{
SfxChildWindow *pCW = i->pWin;
@@ -1473,7 +1477,7 @@ void SfxWorkWindow::HidePopups_Impl(bool bHide, bool bParent, sal_uInt16 nId )
pChild->nVisible &= ~SfxChildVisibility::ACTIVE;
pCW->Hide();
}
- else
+ else if ( SfxChildVisibility::VISIBLE != (pChild->nVisible & SfxChildVisibility::VISIBLE) )
{
pChild->nVisible |= SfxChildVisibility::ACTIVE;
if ( SfxChildVisibility::VISIBLE == (pChild->nVisible & SfxChildVisibility::VISIBLE) )