summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorMarco Cecchetti <marco.cecchetti@collabora.com>2018-04-18 18:31:00 +0200
committerJan Holesovsky <kendy@collabora.com>2018-05-22 09:15:31 +0200
commit3cfeb9b063fd8f1f46fe0e60581bc9b37baefbd1 (patch)
treef1b5c63a638048fd28f9a1da4f1afaa46770dd8f /chart2
parentc04ee32ea43c6ac2c2fa0375405431b7730d78c5 (diff)
lok: charts context menu was misplaced + wrong LogicToLogic conversion
Chart context menu was misplaced since the context menu expects a position related to the document window not to the chart window. Moreover map mode is not enabled for chart window, that leads to use the LogicToLogic routine which unfortunately provides a wrong pixel to twips conversion. In fact we gets a 20 twips per pixel conversion since LogicToLogic uses a fixed 72 dpi value, instead of a correctly computed output device real dpi or at least the most commonly used 96 dpi value. Change-Id: Idb4220d03fddd4b6d643c1c0fb52754bafed7e36 Reviewed-on: https://gerrit.libreoffice.org/53118 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/54649
Diffstat (limited to 'chart2')
-rw-r--r--chart2/source/controller/main/ChartController_Window.cxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/chart2/source/controller/main/ChartController_Window.cxx b/chart2/source/controller/main/ChartController_Window.cxx
index ed3ef2bce8e2..0b0053e479a9 100644
--- a/chart2/source/controller/main/ChartController_Window.cxx
+++ b/chart2/source/controller/main/ChartController_Window.cxx
@@ -66,6 +66,7 @@
#include <toolkit/awt/vclxmenu.hxx>
#include <sfx2/viewsh.hxx>
+#include <sfx2/ipclient.hxx>
#include <svx/svxids.hrc>
#include <svx/ActionDescriptionProvider.hxx>
#include <svx/obj3d.hxx>
@@ -1258,6 +1259,19 @@ void ChartController::execute_Command( const CommandEvent& rCEvt )
{
PopupMenu* pPopupMenu = static_cast<PopupMenu*>(VCLXMenu::GetImplementation(xPopupMenu)->GetMenu());
pPopupMenu->SetLOKNotifier(SfxViewShell::Current());
+
+ // the context menu expects a position related to the document window,
+ // not to the chart window
+ SfxInPlaceClient* pIPClient = SfxViewShell::Current()->GetIPClient();
+ if (pIPClient)
+ {
+ vcl::Window* pRootWin = pIPClient->GetEditWin();
+ if (pRootWin)
+ {
+ Point aOffset = pChartWindow->GetOffsetPixelFrom(*pRootWin);
+ aPos += aOffset;
+ }
+ }
}
xPopupController->setPopupMenu( xPopupMenu );