diff options
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/control/edit.cxx | 14 | ||||
-rw-r--r-- | vcl/source/window/dialog.cxx | 10 |
2 files changed, 24 insertions, 0 deletions
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx index 8edf98b274e1..cf8a153ee256 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <comphelper/lok.hxx> + #include <vcl/decoview.hxx> #include <vcl/event.hxx> #include <vcl/cursor.hxx> @@ -1143,6 +1145,18 @@ void Edit::ImplShowCursor( bool bOnlyIfVisible ) pCursor->SetSize( Size( nCursorWidth, nTextHeight ) ); pCursor->Show(); } + + if (comphelper::LibreOfficeKit::isActive()) + { + const long X = GetOutOffXPixel() + pCursor->GetPos().X(); + const long Y = GetOutOffYPixel() + pCursor->GetPos().Y(); + if (nCursorWidth == 0) + nCursorWidth = 2; + const tools::Rectangle aRect(Point(X, Y), Size(nCursorWidth, pCursor->GetHeight())); + Dialog* pParentDlg = GetParentDialog(); + if (pParentDlg) + pParentDlg->LOKCursorInvalidate(aRect); + } } void Edit::ImplAlign() diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index a409bdc6e126..8e6d5f101012 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -1015,6 +1015,16 @@ void Dialog::LOKKeyUp(const KeyEvent& rKeyEvent) ImplWindowFrameProc(this, SalEvent::ExternalKeyUp, &rKeyEvent); } +void Dialog::LOKCursorInvalidate(const tools::Rectangle& aRect) +{ + assert(comphelper::LibreOfficeKit::isActive()); + + if (!comphelper::LibreOfficeKit::isDialogPainting() && mpDialogRenderable && !maID.isEmpty()) + { + mpDialogRenderable->notifyDialog(maID, "cursor_invalidate", &aRect); + } +} + void Dialog::ensureRepaint() { // ensure repaint |