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;