starmath/source/edit.cxx |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

New commits:
commit d12980ce0b86549028ddaac3192f14456dde25c6
Author: Marcos Paulo de Souza <marcos.souza....@gmail.com>
Date:   Thu Jun 20 00:23:29 2013 -0300

    Fix fdo#43090: Auto Closing of brackets
    
    Check if we hit the left bracket, left parenthesis or left braces, insert 
the right close character
    and set the current position to center the characters.
    
    Change-Id: If1ee8a00799ef0933d5dfd51c32f669a2a27b2a7
    Reviewed-on: https://gerrit.libreoffice.org/4374
    Reviewed-by: Michael Meeks <michael.me...@suse.com>
    Tested-by: Michael Meeks <michael.me...@suse.com>

diff --git a/starmath/source/edit.cxx b/starmath/source/edit.cxx
index f68e0fb..45d27ce 100644
--- a/starmath/source/edit.cxx
+++ b/starmath/source/edit.cxx
@@ -455,6 +455,27 @@ void SmEditWindow::KeyInput(const KeyEvent& rKEvt)
             aModifyTimer.Start();
         }
 
+        // get the current char of the key event
+        sal_Unicode charCode = rKEvt.GetCharCode();
+        OUString close;
+
+        if (charCode == '{')
+            close = "  }";
+        else if (charCode == '[')
+            close = "  ]";
+        else if (charCode == '(')
+            close = "  )";
+
+        // auto close the current character
+        if (!close.isEmpty())
+        {
+            pEditView->InsertText(close);
+            // position it at center of brackets
+            ESelection aSelection = pEditView->GetSelection();
+            aSelection.nStartPos = aSelection.nEndPos = aSelection.nEndPos - 2;
+            pEditView->SetSelection(aSelection);
+        }
+
         InvalidateSlots();
     }
 }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to