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 <6b8b4...@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
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice