Revision: 7264
Author: nogu.dev
Date: Fri Aug 12 17:52:06 2011
Log: * qt4/immodule/qtextutil.cpp
- (QUimTextUtil::deletePrimaryTextInQTextEdit): Fix bugs.
http://code.google.com/p/uim/source/detail?r=7264
Modified:
/trunk/qt4/immodule/qtextutil.cpp
=======================================
--- /trunk/qt4/immodule/qtextutil.cpp Fri Aug 12 02:49:02 2011
+++ /trunk/qt4/immodule/qtextutil.cpp Fri Aug 12 17:52:06 2011
@@ -932,10 +932,10 @@
& ( ~UTextExtent_Line | ~UTextExtent_Full ) ) )
return -1;
}
- latter_del_end = len + preedit_len;
+ latter_del_end = len;
if ( latter_req_len >= 0 ) {
if ( following_len > latter_req_len )
- latter_del_end = precedence_len + preedit_len +
latter_req_len;
+ latter_del_end = precedence_len + latter_req_len;
} else {
if (! ( ~latter_req_len
& ( ~UTextExtent_Line | ~UTextExtent_Full ) ) )
@@ -945,25 +945,25 @@
case UTextOrigin_Beginning:
former_del_start = 0;
- latter_del_end = precedence_len + preedit_len;
+ latter_del_end = precedence_len;
if ( latter_req_len >= 0 ) {
if ( precedence_len < latter_req_len ) {
if ( following_len >= ( latter_req_len - precedence_len ) )
- latter_del_end = preedit_len + latter_req_len;
+ latter_del_end = latter_req_len;
else
- latter_del_end = len + preedit_len;
+ latter_del_end = len;
}
} else {
if (! ( ~latter_req_len
& ( ~UTextExtent_Line | ~UTextExtent_Full ) ) )
return -1;
- latter_del_end = len + preedit_len;
+ latter_del_end = len;
}
break;
case UTextOrigin_End:
former_del_start = precedence_len;
- latter_del_end = len + preedit_len;
+ latter_del_end = len;
if ( former_req_len < 0 ) {
if (! ( ~former_req_len
& ( ~UTextExtent_Line | ~UTextExtent_Full ) ) )
@@ -978,8 +978,10 @@
return -1;
}
+ if ( len < former_del_start )
+ former_del_start = len;
if ( len < latter_del_end )
- return 0;
+ latter_del_end = len;
cursor.setPosition( latter_del_end );
cursor.setPosition( former_del_start, QTextCursor::KeepAnchor );