[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdelibs/kate/part
From: Kazuki Ohta <mover () hct ! zaq ! ne ! jp>
Date: 2005-01-30 16:46:12
Message-ID: 20050130164612.0966E1CE7C () office ! kde ! org
[Download RAW message or body]
CVS commit by kzk:
- set cursor position correctly in accordance with e->cursorPos();
- cleaning up the InputMethod related code.
M +19 -11 kateviewinternal.cpp 1.335
--- kdelibs/kate/part/kateviewinternal.cpp #1.334:1.335
@@ -3118,20 +3118,28 @@ void KateViewInternal::imComposeEvent( Q
}
+ // remove old preedit
if ( m_imPreeditLength > 0 ) {
- m_doc->removeText( cursor.line(), m_imPreeditStart,
- cursor.line(), m_imPreeditStart + m_imPreeditLength );
+ cursor.setPos( m_imPreeditStartLine, m_imPreeditStart );
+ m_doc->removeText( m_imPreeditStartLine, m_imPreeditStart,
+ m_imPreeditStartLine, m_imPreeditStart + m_imPreeditLength );
}
- m_doc->setIMSelectionValue( m_imPreeditStartLine, m_imPreeditStart, \
m_imPreeditStart + e->text().length(),
- m_imPreeditStart + e->cursorPos(), m_imPreeditStart + \
e->cursorPos() + e->selectionLength(), + m_imPreeditLength = e->text().length();
+ m_imPreeditSelStart = m_imPreeditStart + e->cursorPos();
+
+ // update selection
+ m_doc->setIMSelectionValue( m_imPreeditStartLine, m_imPreeditStart, \
m_imPreeditStart + m_imPreeditLength, + \
m_imPreeditSelStart, m_imPreeditSelStart + e->selectionLength(), true );
- m_doc->insertText( cursor.line(), cursor.col(), e->text() );
+ // insert new preedit
+ m_doc->insertText( m_imPreeditStartLine, m_imPreeditStart, e->text() );
- updateView( true );
+
+ // update cursor
+ cursor.setPos( m_imPreeditStartLine, m_imPreeditSelStart );
updateCursor( cursor, true );
- m_imPreeditLength = e->text().length();
- m_imPreeditSelStart = m_imPreeditStart + e->cursorPos();
+ updateView( true );
}
@@ -3144,6 +3152,7 @@ void KateViewInternal::imEndEvent( QIMEv
if ( m_imPreeditLength > 0 ) {
- m_doc->removeText( cursor.line(), m_imPreeditStart,
- cursor.line(), m_imPreeditStart + m_imPreeditLength );
+ cursor.setPos( m_imPreeditStartLine, m_imPreeditStart );
+ m_doc->removeText( m_imPreeditStartLine, m_imPreeditStart,
+ m_imPreeditStartLine, m_imPreeditStart + m_imPreeditLength );
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic