Index: src/text/fmt/xp/fl_BlockLayout.cpp =================================================================== RCS file: /cvsroot/abi/src/text/fmt/xp/fl_BlockLayout.cpp,v retrieving revision 1.152 diff -u -r1.152 fl_BlockLayout.cpp --- src/text/fmt/xp/fl_BlockLayout.cpp 2000/05/23 17:26:14 1.152 +++ src/text/fmt/xp/fl_BlockLayout.cpp 2000/05/28 20:43:17 @@ -51,6 +51,8 @@ #include "xap_Clipboard.h" #include "ut_png.h" #include "fg_Graphic.h" +#include "ap_Prefs.h" +#include "ap_Prefs_SchemeIds.h" #include "ut_debugmsg.h" #include "ut_assert.h" @@ -111,6 +113,10 @@ m_pNext->m_pPrev = this; } + XAP_App * pApp = XAP_App::getApp(); + XAP_Prefs * pPrefs = pApp->getPrefs(); + pPrefs->addListener(fl_BlockLayout::_prefsListener, this); + fl_BlockLayout::_prefsListener (pApp, pPrefs, (UT_AlphaHashTable *) NULL, (void *) this); } fl_TabStop::fl_TabStop() @@ -2167,7 +2174,8 @@ pView->notifyListeners(AV_CHG_FMTCHAR); // TODO verify that this is necessary. } - _insertSquiggles(blockOffset, len); + if (m_bCheckInteractively) + _insertSquiggles(blockOffset, len); return UT_TRUE; } @@ -2314,7 +2322,8 @@ pView->_setPoint(pcrs->getPosition()); } - _deleteSquiggles(blockOffset, len); + if (m_bCheckInteractively) + _deleteSquiggles(blockOffset, len); return UT_TRUE; } @@ -2788,7 +2797,7 @@ } #ifdef FASTSQUIGGLE - if (m_vecSquiggles.getItemCount() > 0) + if (m_bCheckInteractively && m_vecSquiggles.getItemCount() > 0) { // we have squiggles, so move them _breakSquiggles(blockOffset, pNewBL); @@ -2992,7 +3001,8 @@ pView->_setPoint(pcro->getPosition() + 1); } - _insertSquiggles(blockOffset, 1); // TODO: are objects always one wide? + if (m_bCheckInteractively) + _insertSquiggles(blockOffset, 1); // TODO: are objects always one wide? return UT_TRUE; } @@ -3033,7 +3043,8 @@ pView->_setPoint(pcro->getPosition()); } - _deleteSquiggles(blockOffset, 1); // TODO: are objects always one wide? + if (m_bCheckInteractively) + _deleteSquiggles(blockOffset, 1); // TODO: are objects always one wide? return UT_TRUE; } @@ -3543,4 +3554,11 @@ pView->updateScreen(); pView->_drawInsertionPoint(); } +} + +/*static*/ void fl_BlockLayout::_prefsListener(XAP_App * /*pApp*/, XAP_Prefs *pPrefs, UT_AlphaHashTable * /*phChanges*/, void *data) +{ + fl_BlockLayout *pLayout = (fl_BlockLayout *) data; + pLayout->m_bCheckInteractively = UT_TRUE; + pPrefs->getCurrentScheme()->getValueBool((XML_Char *)AP_PREF_KEY_AutoSpellCheck, &pLayout->m_bCheckInteractively); } Index: src/text/fmt/xp/fl_BlockLayout.h =================================================================== RCS file: /cvsroot/abi/src/text/fmt/xp/fl_BlockLayout.h,v retrieving revision 1.74 diff -u -r1.74 fl_BlockLayout.h --- src/text/fmt/xp/fl_BlockLayout.h 2000/01/30 04:45:32 1.74 +++ src/text/fmt/xp/fl_BlockLayout.h 2000/05/28 20:43:18 @@ -311,9 +311,12 @@ void _stuffAllRunsOnALine(void); void _insertFakeTextRun(void); + static void _prefsListener(XAP_App * /*pApp*/, XAP_Prefs *pPrefs, UT_AlphaHashTable * /*phChanges*/, void * data); + UT_Bool m_bNeedsReformat; UT_Bool m_bNeedsRedraw; UT_Bool m_bFixCharWidths; + UT_Bool m_bCheckInteractively; fl_CharWidths m_gbCharWidths;