Fix bug when use Ctrl+Backspace to remove word in double pinyin
authorPeng Huang <shawn.p.huang@gmail.com>
Thu, 25 Mar 2010 08:56:16 +0000 (16:56 +0800)
committerPeng Huang <shawn.p.huang@gmail.com>
Thu, 25 Mar 2010 09:01:40 +0000 (17:01 +0800)
src/DoublePinyinEditor.cc

index 564c909..e59930d 100644 (file)
@@ -111,8 +111,10 @@ DoublePinyinEditor::removeWordBefore (void)
         updateAuxiliaryText ();
     }
     else {
-        m_cursor = m_pinyin_len = m_pinyin.back ().begin;
+        m_pinyin_len = m_pinyin.back ().begin;
         m_pinyin.pop ();
+        m_text.erase (m_pinyin_len, m_cursor - m_pinyin_len);
+        m_cursor = m_pinyin_len;
         updatePhraseEditor ();
         update ();
     }
@@ -126,7 +128,7 @@ DoublePinyinEditor::removeWordAfter (void)
     if (G_UNLIKELY (m_cursor == m_text.length ()))
         return FALSE;
 
-    m_text.erase (m_cursor, -1);
+    m_text.erase (m_cursor);
     updatePreeditText ();
     updateAuxiliaryText ();
     return TRUE;