summaryrefslogtreecommitdiff
path: root/starmath/source/view.cxx
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2022-11-05 21:16:29 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2022-11-05 23:37:35 +0100
commit1b1a066b935158dc029939520c8fe70b029cb311 (patch)
tree037c031d6bda8dc59cd2fce809277ab72bca3d07 /starmath/source/view.cxx
parentd90bf6f8c19d7c43ec83656a3a6f85a81aee573c (diff)
lok: show Math selection
Change-Id: I950ae3e5fb000d6acec4c26ff143b918a4e48a27 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142342 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'starmath/source/view.cxx')
-rw-r--r--starmath/source/view.cxx24
1 files changed, 23 insertions, 1 deletions
diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index 95a175081737..1bcfc0d3efc7 100644
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -2324,10 +2324,28 @@ std::optional<OString> SmViewShell::getLOKPayload(int nType, int nViewId) const
}
return SfxLokHelper::makeVisCursorInvalidation(nViewId, sRectangle, false, {});
}
- case LOK_CALLBACK_INVALIDATE_VIEW_CURSOR:
case LOK_CALLBACK_TEXT_SELECTION:
+ {
+ OString sRectangle;
+ if (const SmGraphicWidget& widget = GetGraphicWidget(); widget.IsCursorVisible())
+ {
+ SmCursor& rCursor = GetDoc()->GetCursor();
+ OutputDevice& rOutDev = const_cast<SmGraphicWidget&>(widget).GetOutputDevice();
+ tools::Rectangle aSelection = rCursor.GetSelectionRectangle(rOutDev);
+ if (!aSelection.IsEmpty())
+ {
+ LokStarMathHelper helper(SfxViewShell::Current());
+ tools::Rectangle aBounds = helper.GetBoundingBox();
+
+ aSelection.Move(aBounds.Left(), aBounds.Top());
+ sRectangle = aSelection.toString();
+ }
+ }
+ return sRectangle;
+ }
case LOK_CALLBACK_TEXT_SELECTION_START:
case LOK_CALLBACK_TEXT_SELECTION_END:
+ case LOK_CALLBACK_INVALIDATE_VIEW_CURSOR:
case LOK_CALLBACK_TEXT_VIEW_SELECTION:
return {};
}
@@ -2342,6 +2360,10 @@ void SmViewShell::SendCaretToLOK() const
libreOfficeKitViewCallbackWithViewId(LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR,
payload->getStr(), nViewId);
}
+ if (const auto& payload = getLOKPayload(LOK_CALLBACK_TEXT_SELECTION, nViewId))
+ {
+ libreOfficeKitViewCallback(LOK_CALLBACK_TEXT_SELECTION, payload->getStr());
+ }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */