[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#636615: src:kde4libs: [squeeze] marked text gets lost on switching between windows (when using an IME)



Package: src:kde4libs
Version: 4:4.4.5-2+squeeze2
Severity: important
Tags: upstream

When using kate (or other programs) marked text gets lost when switching
between different windows (when an IME such as ibus is used).  It would
be nice if the next point release could include the attached backported
patch to fix this issue.

I have been using the patch on several computers for several months
without any problems.

Regards,
Ansgar

References:
 - upstream bug report: <https://bugs.kde.org/show_bug.cgi?id=248558>
 - upstream patch: <http://websvn.kde.org/branches/KDE/4.5/kdelibs/kate/view/kateviewinternal.cpp?r1=1199457&r2=1199456&pathrev=1199457&view=patch>
Bug: https://bugs.kde.org/show_bug.cgi?id=248558
Origin: backport, http://websvn.kde.org/branches/KDE/4.5/kdelibs/kate/view/kateviewinternal.cpp?r1=1199457&r2=1199456&pathrev=1199457&view=patch

--- kde4libs-4.4.5.orig/kate/view/kateviewinternal.cpp
+++ kde4libs-4.4.5/kate/view/kateviewinternal.cpp
@@ -3781,9 +3781,6 @@
 
   //kDebug( 13030 ) << "Event: cursor" << m_cursor << "commit" << e->commitString() << "preedit" << e->preeditString() << "replacement start" << e->replacementStart() << "length" << e->replacementLength();
 
-  if ( m_view->selection() )
-    m_view->removeSelectedText();
-
   bool createdPreedit = false;
   if (!m_imPreeditRange) {
     createdPreedit = true;
@@ -3797,6 +3794,8 @@
   }
 
   if (!e->commitString().isEmpty() || e->replacementLength()) {
+    m_view->removeSelectedText();
+
     KTextEditor::Range preeditRange = *m_imPreeditRange;
 
     KTextEditor::Cursor start(m_imPreeditRange->start().line(), m_imPreeditRange->start().column() + e->replacementStart());

Reply to: