From 3fb5c82343761f02a956653d7afcdb96d509daf5 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 17 Nov 2015 12:21:42 +0100 Subject: [PATCH 338/398] sw lok comments: fix text selection with custom zoom SwPostItMgr::GetSidebarWidth() can be called in two scenarios: - inside PaintTile() the output device contains the zoom level and has the map mode enabled (and its scale factor is the zoom level) - outisde PaintTile() the output device is SwEditWin and has the map mode disabled (and the zoom level is to be taken from the view options) Change-Id: I6cf19f3241a2e972ae711e0efa7b0205aae1a3f2 (cherry picked from commit 0fd381b773cb7c15c4773affd4a3b298ad38fe92) --- sw/source/uibase/docvw/PostItMgr.cxx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/sw/source/uibase/docvw/PostItMgr.cxx b/sw/source/uibase/docvw/PostItMgr.cxx index fa82556554d1..40e2bda8f6b7 100644 --- a/sw/source/uibase/docvw/PostItMgr.cxx +++ b/sw/source/uibase/docvw/PostItMgr.cxx @@ -1865,10 +1865,11 @@ bool SwPostItMgr::HasNotes() const unsigned long SwPostItMgr::GetSidebarWidth(bool bPx) const { + bool bEnableMapMode = !mpWrtShell->GetOut()->IsMapModeEnabled(); sal_uInt16 nZoom = mpWrtShell->GetViewOptions()->GetZoom(); - if (comphelper::LibreOfficeKit::isActive()) + if (comphelper::LibreOfficeKit::isActive() && !bEnableMapMode) { - // The output device contains the real wanted scale factor. + // The output device is the tile and contains the real wanted scale factor. double fScaleX = mpWrtShell->GetOut()->GetMapMode().GetScaleX(); nZoom = fScaleX * 100; } @@ -1877,7 +1878,15 @@ unsigned long SwPostItMgr::GetSidebarWidth(bool bPx) const if (bPx) return aWidth; else - return mpWrtShell->GetOut()->PixelToLogic(Size(aWidth, 0)).Width(); + { + if (bEnableMapMode) + // The output device is the window. + mpWrtShell->GetOut()->EnableMapMode(); + long nRet = mpWrtShell->GetOut()->PixelToLogic(Size(aWidth, 0)).Width(); + if (bEnableMapMode) + mpWrtShell->GetOut()->EnableMapMode(false); + return nRet; + } } unsigned long SwPostItMgr::GetSidebarBorderWidth(bool bPx) const -- 2.12.0