Bug 120821 - Pausing spelling, editing a document then resuming causes the spell checker to correct the wrong text.
Summary: Pausing spelling, editing a document then resuming causes the spell checker t...
Alias: None
Product: kate
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: KWrite Developers
Depends on:
Reported: 2006-01-26 17:10 UTC by Alex W
Modified: 2006-01-27 20:47 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Note You need to log in before you can comment on or make changes to this bug.
Description Alex W 2006-01-26 17:10:01 UTC
Version:           unknown (using KDE 3.5.0, Gentoo)
Compiler:          gcc version 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0, pie-8.7.9)
OS:                Linux (i686) release 2.6.14-gentoo-r5

How to Reproduce:
Create / open a document with spelling errors with kate or using a katepart (e.g. in Quanta)

Start the spell check. Type in the document window to correct or alter the highlighted text that is currently being flagged as misspelled.

Continue the spell check. Corrections are now applied to the wrong part of the text.

Expected Behaviour:
Spellcheck always corrects the right part of the text.
Comment 1 Anders Lund 2006-01-27 20:47:08 UTC
SVN commit 502998 by alund:

Make the spelling dialog modal. Given the way the spell checking is implemented, we cant have people typing away in the document during the spell check.
BUG: 120821

 M  +2 -2      katespell.cpp  

--- branches/KDE/3.5/kdelibs/kate/part/katespell.cpp #502997:502998
@@ -105,8 +105,8 @@
   else if ( mt == "text/html" || mt == "text/xml" )
     type = KSpell::HTML;
-  m_kspell = new KSpell( 0, i18n("Spellcheck"),
-                         this, SLOT(ready(KSpell *)), 0, true, false, type );
+  m_kspell = new KSpell( m_view, i18n("Spellcheck"),
+                         this, SLOT(ready(KSpell *)), 0, true, true, type );
   connect( m_kspell, SIGNAL(death()),
            this, SLOT(spellCleanDone()) );