|
 |
f325b2 |
From eea254dd5eb834b846ff9c55662d5704c266f438 Mon Sep 17 00:00:00 2001
|
|
 |
f325b2 |
From: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
 |
f325b2 |
Date: Thu, 19 Nov 2015 16:11:43 +0100
|
|
 |
f325b2 |
Subject: [PATCH 348/398] sw lok comments: optimize sidebar text control
|
|
 |
f325b2 |
invalidation
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Instead of invalidating the whole area, invalidate the sub-widget when
|
|
 |
f325b2 |
the whole area of the sub-widget would be invalidated.
|
|
 |
f325b2 |
|
|
 |
f325b2 |
With this, a test comment with enough comment to have a scrollbar
|
|
 |
f325b2 |
results in 3 paintTile() calls instead of 11 ones (70% save).
|
|
 |
f325b2 |
|
|
 |
f325b2 |
(cherry picked from commit 9ece5c870a0ce39690109777bb8f76c1463a10c2)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Change-Id: I2fe317549eefac9a63aaf50f5a9a242e15c4dc86
|
|
 |
f325b2 |
---
|
|
 |
f325b2 |
sw/source/uibase/docvw/SidebarTxtControl.cxx | 34 ++++++++++++++++------------
|
|
 |
f325b2 |
1 file changed, 19 insertions(+), 15 deletions(-)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/sw/source/uibase/docvw/SidebarTxtControl.cxx b/sw/source/uibase/docvw/SidebarTxtControl.cxx
|
|
 |
f325b2 |
index d6887a475312..4558c4071bfd 100644
|
|
 |
f325b2 |
--- a/sw/source/uibase/docvw/SidebarTxtControl.cxx
|
|
 |
f325b2 |
+++ b/sw/source/uibase/docvw/SidebarTxtControl.cxx
|
|
 |
f325b2 |
@@ -190,24 +190,28 @@ void SidebarTextControl::Paint(vcl::RenderContext& rRenderContext, const Rectang
|
|
 |
f325b2 |
|
|
 |
f325b2 |
void SidebarTextControl::LogicInvalidate(const Rectangle* pRectangle)
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
- OString sRectangle;
|
|
 |
f325b2 |
+ Rectangle aRectangle;
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
if (!pRectangle)
|
|
 |
f325b2 |
- sRectangle = "EMPTY";
|
|
 |
f325b2 |
- else
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
- // Convert from relative twips to absolute ones.
|
|
 |
f325b2 |
- Rectangle aRectangle(*pRectangle);
|
|
 |
f325b2 |
- vcl::Window& rParent = *mrSidebarWin.EditWin();
|
|
 |
f325b2 |
- Point aOffset(GetOutOffXPixel() - rParent.GetOutOffXPixel(), GetOutOffYPixel() - rParent.GetOutOffYPixel());
|
|
 |
f325b2 |
- rParent.Push(PushFlags::MAPMODE);
|
|
 |
f325b2 |
- rParent.EnableMapMode();
|
|
 |
f325b2 |
- aOffset = rParent.PixelToLogic(aOffset);
|
|
 |
f325b2 |
- rParent.Pop();
|
|
 |
f325b2 |
- aRectangle.Move(aOffset.getX(), aOffset.getY());
|
|
 |
f325b2 |
-
|
|
 |
f325b2 |
- sRectangle = aRectangle.toString();
|
|
 |
f325b2 |
+ Push(PushFlags::MAPMODE);
|
|
 |
f325b2 |
+ EnableMapMode();
|
|
 |
f325b2 |
+ aRectangle = Rectangle(Point(0, 0), PixelToLogic(GetSizePixel()));
|
|
 |
f325b2 |
+ Pop();
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
-
|
|
 |
f325b2 |
+ else
|
|
 |
f325b2 |
+ aRectangle = *pRectangle;
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ // Convert from relative twips to absolute ones.
|
|
 |
f325b2 |
+ vcl::Window& rParent = *mrSidebarWin.EditWin();
|
|
 |
f325b2 |
+ Point aOffset(GetOutOffXPixel() - rParent.GetOutOffXPixel(), GetOutOffYPixel() - rParent.GetOutOffYPixel());
|
|
 |
f325b2 |
+ rParent.Push(PushFlags::MAPMODE);
|
|
 |
f325b2 |
+ rParent.EnableMapMode();
|
|
 |
f325b2 |
+ aOffset = rParent.PixelToLogic(aOffset);
|
|
 |
f325b2 |
+ rParent.Pop();
|
|
 |
f325b2 |
+ aRectangle.Move(aOffset.getX(), aOffset.getY());
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ OString sRectangle = aRectangle.toString();
|
|
 |
f325b2 |
SwWrtShell& rWrtShell = mrDocView.GetWrtShell();
|
|
 |
f325b2 |
rWrtShell.libreOfficeKitCallback(LOK_CALLBACK_INVALIDATE_TILES, sRectangle.getStr());
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
--
|
|
 |
f325b2 |
2.12.0
|
|
 |
f325b2 |
|