diff options
author | Pranav Kant <pranavk@collabora.co.uk> | 2017-01-23 21:53:49 +0530 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-02-17 16:48:39 +0100 |
commit | 574dd40ae6ef9aff39b363c1969f37ba23768478 (patch) | |
tree | 85dcd132966d7c8efe6b57788a65a1a7ef28e2ac | |
parent | d9c5659d9bcc9fca7eb5f090c314bf106c672a96 (diff) |
lok: New feature flag to turn off tiled annotations
Change-Id: Ie418642242ada98d4a41f30bb6cefcd57f398ef0
Reviewed-on: https://gerrit.libreoffice.org/33472
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
(cherry picked from commit 75d8b305bbc1c2377f23361ecd64816a350baa4c)
-rw-r--r-- | comphelper/source/misc/lok.cxx | 12 | ||||
-rw-r--r-- | desktop/source/lib/init.cxx | 2 | ||||
-rw-r--r-- | include/LibreOfficeKit/LibreOfficeKitEnums.h | 5 | ||||
-rw-r--r-- | include/comphelper/lok.hxx | 4 | ||||
-rw-r--r-- | sw/source/core/view/viewsh.cxx | 3 | ||||
-rw-r--r-- | sw/source/uibase/uno/unotxdoc.cxx | 8 |
6 files changed, 33 insertions, 1 deletions
diff --git a/comphelper/source/misc/lok.cxx b/comphelper/source/misc/lok.cxx index cf776f00c35f..44487da953ca 100644 --- a/comphelper/source/misc/lok.cxx +++ b/comphelper/source/misc/lok.cxx @@ -21,6 +21,8 @@ static bool g_bPartInInvalidation(false); static bool g_bTiledPainting(false); +static bool g_bTiledAnnotations(true); + void setActive(bool bActive) { g_bActive = bActive; @@ -51,6 +53,16 @@ bool isTiledPainting() return g_bTiledPainting; } +void setTiledAnnotations(bool bTiledAnnotations) +{ + g_bTiledAnnotations = bTiledAnnotations; +} + +bool isTiledAnnotations() +{ + return g_bTiledAnnotations; +} + static bool g_bLocalRendering(false); void setLocalRendering(bool bLocalRendering) diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 93bb799c4fda..c7ee9afecac1 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -2786,6 +2786,8 @@ static void lo_setOptionalFeatures(LibreOfficeKit* pThis, uint64_t const feature pLib->mOptionalFeatures = features; if (features & LOK_FEATURE_PART_IN_INVALIDATION_CALLBACK) comphelper::LibreOfficeKit::setPartInInvalidation(true); + if (features & LOK_FEATURE_NO_TILED_ANNOTATIONS) + comphelper::LibreOfficeKit::setTiledAnnotations(false); } static void lo_setDocumentPassword(LibreOfficeKit* pThis, diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h index d2ccc0fdccd8..f3dccd037830 100644 --- a/include/LibreOfficeKit/LibreOfficeKitEnums.h +++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h @@ -69,6 +69,11 @@ typedef enum * LOK_CALLBACK_INVALIDATE_TILES payload. */ LOK_FEATURE_PART_IN_INVALIDATION_CALLBACK = (1ULL << 2), + + /** + * Turn off tile rendering for annotations + */ + LOK_FEATURE_NO_TILED_ANNOTATIONS = (1ULL << 3) } LibreOfficeKitOptionalFeatures; diff --git a/include/comphelper/lok.hxx b/include/comphelper/lok.hxx index ca9f87f495dd..253541a80cb6 100644 --- a/include/comphelper/lok.hxx +++ b/include/comphelper/lok.hxx @@ -52,6 +52,10 @@ COMPHELPER_DLLPUBLIC void setPartInInvalidation(bool bPartInInvalidation); COMPHELPER_DLLPUBLIC bool isTiledPainting(); /// Set if we are doing tiled painting. COMPHELPER_DLLPUBLIC void setTiledPainting(bool bTiledPainting); +/// Set if we want no annotations rendering +COMPHELPER_DLLPUBLIC void setTiledAnnotations(bool bTiledAnnotations); +/// Check if annotations rendering is turned off +COMPHELPER_DLLPUBLIC bool isTiledAnnotations(); // Status indicator handling. Even if in theory there could be several status indicators active at // the same time, in practice there is only one at a time, so we don't handle any identification of diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 9d94244d7729..8e05c85e7653 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -1890,7 +1890,8 @@ void SwViewShell::PaintTile(VirtualDevice &rDevice, int contextWidth, int contex // draw - works in logic coordinates Paint(rDevice, aOutRect); - if (SwPostItMgr* pPostItMgr = GetPostItMgr()) + SwPostItMgr* pPostItMgr = GetPostItMgr(); + if (GetViewOptions()->IsPostIts() && pPostItMgr) pPostItMgr->PaintTile(rDevice, aOutRect); // SwViewShell's output device tear down diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index a65616a54d87..3cfaa2a497a7 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -119,6 +119,7 @@ #include <drawdoc.hxx> #include <SwStyleNameMapper.hxx> #include <osl/file.hxx> +#include <comphelper/lok.hxx> #include <comphelper/storagehelper.hxx> #include <cppuhelper/supportsservice.hxx> #include <unotools/saveopt.hxx> @@ -3292,8 +3293,15 @@ void SwXTextDocument::initializeForTiledRendering(const css::uno::Sequence<css:: pDocShell->SetView(pView); } } + + aViewOption.SetPostIts(comphelper::LibreOfficeKit::isTiledAnnotations()); pViewShell->ApplyViewOptions(aViewOption); + // position the pages again after setting view options. Eg: if postit + // rendering is false, then there would be no sidebar, so width of the + // document needs to be adjusted + pViewShell->GetLayout()->CheckViewLayout( pViewShell->GetViewOptions(), nullptr ); + // Disable map mode, so that it's possible to send mouse event coordinates // directly in twips. SwEditWin& rEditWin = pDocShell->GetView()->GetEditWin(); |