summaryrefslogtreecommitdiff
path: root/vcl/jsdialog/executor.cxx
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2022-06-01 14:52:33 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2022-06-29 07:27:52 +0200
commit61f5c991a97de8990badfed6ef840941b5aa8c7f (patch)
tree27c10329cbbc440d2d48d29b38ff52e1c57fca76 /vcl/jsdialog/executor.cxx
parent51bfd4a3105e4a406dc8f220102520202a72150a (diff)
jsdialog: correctly parse click position for drawingarea
Change-Id: I8f0739cea8d2a3472926682f205bc5f5227bdc4c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135241 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mert Tumer <mert.tumer@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136593 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'vcl/jsdialog/executor.cxx')
-rw-r--r--vcl/jsdialog/executor.cxx36
1 files changed, 19 insertions, 17 deletions
diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx
index 58ec87cf0197..0145c91f8eee 100644
--- a/vcl/jsdialog/executor.cxx
+++ b/vcl/jsdialog/executor.cxx
@@ -175,27 +175,29 @@ bool ExecuteAction(const std::string& nWindowId, const OString& rWidget, StringM
if (sAction == "click")
{
OUString sClickData = rData["data"];
- int separatorPos = sClickData.indexOf(';');
- if (separatorPos > 0)
+ int nSeparatorPos = sClickData.indexOf(';');
+ if (nSeparatorPos > 0)
{
// x;y
- std::u16string_view clickPosX = sClickData.subView(0, separatorPos);
- std::u16string_view clickPosY = sClickData.subView(separatorPos + 1);
- if (!clickPosX.empty() && !clickPosY.empty())
- {
- double posX = o3tl::toDouble(clickPosX);
- double posY = o3tl::toDouble(clickPosY);
- OutputDevice& rRefDevice = pArea->get_ref_device();
- // We send OutPutSize for the drawing area bitmap
- // get_size_request is not necessarily updated
- // therefore it may be incorrect.
- Size size = rRefDevice.GetOutputSize();
- posX = posX * size.Width();
- posY = posY * size.Height();
- LOKTrigger::trigger_click(*pArea, Point(posX, posY));
+ std::u16string_view nClickPosX = sClickData.subView(0, nSeparatorPos);
+ std::u16string_view nClickPosY = sClickData.subView(nSeparatorPos + 1);
+
+ if (nClickPosX.empty() || nClickPosY.empty())
return true;
- }
+
+ double posX = o3tl::toDouble(nClickPosX);
+ double posY = o3tl::toDouble(nClickPosY);
+ OutputDevice& rRefDevice = pArea->get_ref_device();
+ // We send OutPutSize for the drawing area bitmap
+ // get_size_request is not necessarily updated
+ // therefore it may be incorrect.
+ Size size = rRefDevice.GetOutputSize();
+ posX = posX * size.Width();
+ posY = posY * size.Height();
+ LOKTrigger::trigger_click(*pArea, Point(posX, posY));
+ return true;
}
+
LOKTrigger::trigger_click(*pArea, Point(10, 10));
return true;
}