Hello,
I thought I'd try one of the visual formula editor easy hacks, as
Michael had recommended.
This one seemed the easiest of the three there. Hope it's okay.
Regards,
Luke
From 9de527f33cd410422e706da547fae67d6a5adbee Mon Sep 17 00:00:00 2001
From: Luke Dixon <6b8b4567@gmail.com>
Date: Mon, 1 Nov 2010 21:57:49 +0000
Subject: [PATCH] Don't draw caret when visual formula editor looses focus.
---
starmath/inc/view.hxx | 3 +++
starmath/source/view.cxx | 14 +++++++++++++-
starmath/visual-editor-todo | 3 +--
3 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/starmath/inc/view.hxx b/starmath/inc/view.hxx
index 925b2cc..40c3aab 100644
--- a/starmath/inc/view.hxx
+++ b/starmath/inc/view.hxx
@@ -86,6 +86,9 @@ protected:
virtual void StateChanged( StateChangedType eChanged );
DECL_LINK(MenuSelectHdl, Menu *);
+private:
+ void RepaintViewShellDoc();
+
public:
SmGraphicWindow(SmViewShell* pShell);
~SmGraphicWindow();
diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index 120e3b5..d71283f 100644
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -217,6 +217,8 @@ void SmGraphicWindow::GetFocus()
pViewShell->GetEditWindow()->Flush();
//Let view shell know what insertions should be done in visual editor
pViewShell->SetInsertIntoEditWindow(FALSE);
+ SetIsCursorVisible(TRUE);
+ RepaintViewShellDoc();
}
void SmGraphicWindow::LoseFocus()
@@ -230,6 +232,16 @@ void SmGraphicWindow::LoseFocus()
pAccessible->LaunchEvent( AccessibleEventId::STATE_CHANGED,
aOldValue, aNewValue );
}
+ if (!IsInlineEditEnabled())
+ return;
+ SetIsCursorVisible(FALSE);
+ RepaintViewShellDoc();
+}
+
+void SmGraphicWindow::RepaintViewShellDoc()
+{
+ SmDocShell &rDoc = *pViewShell->GetDoc();
+ rDoc.Repaint();
}
void SmGraphicWindow::ShowCursor(BOOL bShow)
@@ -318,7 +330,7 @@ void SmGraphicWindow::Paint(const Rectangle&)
SetFormulaDrawPos(aPoint);
if(IsInlineEditEnabled()) {
//Draw cursor if any...
- if(pViewShell->GetDoc()->HasCursor())
+ if(pViewShell->GetDoc()->HasCursor() && IsCursorVisible())
pViewShell->GetDoc()->GetCursor().Draw(*this, aPoint);
} else {
SetIsCursorVisible(FALSE); // (old) cursor must be drawn again
diff --git a/starmath/visual-editor-todo b/starmath/visual-editor-todo
index 027140f..4317493 100644
--- a/starmath/visual-editor-todo
+++ b/starmath/visual-editor-todo
@@ -24,8 +24,7 @@ Medium
2. SmCursor` should support deletion of lines, rows, cols and sub-/superscripts.
3. SmCursor::InsertSubSup() should wrap the body in a SmBraceNode if the body is an SmOperNode,
SmBinVerNode, etc.
4. Make caret in visual editor blink.
-5. Don't draw visual editor caret, when SmGraphicWindow doesn't have focus.
-6. When OpenOffice Math runs in standalone mode it centers the current formula, this is not nice
for visual editing.
+5. When OpenOffice Math runs in standalone mode it centers the current formula, this is not nice
for visual editing.
Complex
-------
--
1.7.3.1
Context
- [Libreoffice] Easy Hack: Don't draw caret when visual formula editor looses focus · Luke Dixon
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.