editeng/source/editeng/impedit.cxx |    7 +++++++
 1 file changed, 7 insertions(+)

New commits:
commit a13b4325ef4cd17a73615224dca4bfd207f51d1a
Author: Miklos Vajna <[email protected]>
Date:   Fri Mar 20 14:12:57 2015 +0100

    ImpEditView::ShowCursor: don't assume map mode is twips
    
    This makes the blinking cursor appear at the expected position in
    Impress when editing shape text.
    
    Change-Id: I71ad9d10f40f1ae290dc235ae26072955af84a2d

diff --git a/editeng/source/editeng/impedit.cxx 
b/editeng/source/editeng/impedit.cxx
index e24e407..046a24f 100644
--- a/editeng/source/editeng/impedit.cxx
+++ b/editeng/source/editeng/impedit.cxx
@@ -920,6 +920,13 @@ void ImpEditView::ShowCursor( bool bGotoCursor, bool 
bForceVisCursor, sal_uInt16
         {
             const Point& rPos = GetCursor()->GetPos();
             Rectangle aRect(rPos.getX(), rPos.getY(), rPos.getX() + 
GetCursor()->GetWidth(), rPos.getY() + GetCursor()->GetHeight());
+
+            // LOK output is always in twips, convert from mm100 if necessary.
+            if (pOutWin->IsMapModeEnabled() && 
pOutWin->GetMapMode().GetMapUnit() == MAP_100TH_MM)
+                aRect = OutputDevice::LogicToLogic(aRect, MAP_100TH_MM, 
MAP_TWIP);
+            // Let the LOK client decide the cursor width.
+            aRect.setWidth(0);
+
             OString sRect = aRect.toString();
             libreOfficeKitCallback(LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR, 
sRect.getStr());
         }
_______________________________________________
Libreoffice-commits mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to