? overtype_smart_quotes.diff
? suse.diff
? src/Linux_2.4.2_i386_GNOME
Index: src/af/xap/xp/xav_View.h
===================================================================
RCS file: /cvsroot/abi/src/af/xap/xp/xav_View.h,v
retrieving revision 1.32
diff -c -3 -r1.32 xav_View.h
*** src/af/xap/xp/xav_View.h	2001/03/15 20:22:39	1.32
--- src/af/xap/xp/xav_View.h	2001/03/30 21:27:32
***************
*** 89,94 ****
--- 89,95 ----
  	inline UT_sint32	getWindowHeight(void) const { return m_iWindowHeight; };
  	inline UT_sint32	getXScrollOffset(void) const { return m_xScrollOffset; };
  	inline UT_sint32	getYScrollOffset(void) const { return m_yScrollOffset; };
+ 	inline bool		getInsertMode() const { return m_bInsertMode; };
  
  	virtual void	draw(const UT_Rect* pRect=(UT_Rect*) NULL) = 0;
  
Index: src/text/fmt/xp/fl_DocLayout.cpp
===================================================================
RCS file: /cvsroot/abi/src/text/fmt/xp/fl_DocLayout.cpp,v
retrieving revision 1.121
diff -c -3 -r1.121 fl_DocLayout.cpp
*** src/text/fmt/xp/fl_DocLayout.cpp	2001/03/29 09:00:41	1.121
--- src/text/fmt/xp/fl_DocLayout.cpp	2001/03/30 21:27:37
***************
*** 1646,1654 ****
  			saved_pos = m_pView->getPoint();
  			quotable_at = block->getPosition(false) + offset;
  
  			m_pView->moveInsPtTo(quotable_at);
  			// delete/insert create change records for UNDO
! 			m_pView->cmdCharDelete(true, 1);
  			m_pView->cmdCharInsert(&replacement, 1);
  			m_pView->moveInsPtTo(saved_pos);
  
--- 1646,1666 ----
  			saved_pos = m_pView->getPoint();
  			quotable_at = block->getPosition(false) + offset;
  
+ 
  			m_pView->moveInsPtTo(quotable_at);
  			// delete/insert create change records for UNDO
! 			if(m_pView->getInsertMode())
! 			{
! 				// We don't need to delete the char if we're in 
! 				// overtype mode, because our insertion overwrites
! 				// it
! 				m_pView->cmdCharDelete(true, 1);
! 				xxx_UT_DEBUGMSG(("Deleting the non-smart quote.\n"));
! 			}
! 			else
! 			{
! 				xxx_UT_DEBUGMSG(("Directly overtyping the non-smart quote.\n"));
! 			}
  			m_pView->cmdCharInsert(&replacement, 1);
  			m_pView->moveInsPtTo(saved_pos);
  
