From a088f9e729084f950ee58afb8f80e64d4d134144 Mon Sep 17 00:00:00 2001 From: Pranav Kant Date: Tue, 14 Nov 2017 16:00:57 +0530 Subject: lokdialog: Callback for dialog cursor invalidation Change-Id: Iecadb68737ed7b1a425d9ea633976fb24d1055c6 Reviewed-on: https://gerrit.libreoffice.org/44721 Tested-by: Jenkins Reviewed-by: pranavk --- vcl/source/control/edit.cxx | 14 ++++++++++++++ vcl/source/window/dialog.cxx | 10 ++++++++++ 2 files changed, 24 insertions(+) (limited to 'vcl/source') 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 + #include #include #include @@ -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 -- cgit v1.2.3