Index: src/wp/ap/win/ap_Win32Dialog_Spell.cpp =================================================================== RCS file: /cvsroot/abi/src/wp/ap/win/ap_Win32Dialog_Spell.cpp,v retrieving revision 1.4 diff -u -r1.4 ap_Win32Dialog_Spell.cpp --- src/wp/ap/win/ap_Win32Dialog_Spell.cpp 1999/10/14 01:50:45 1.4 +++ src/wp/ap/win/ap_Win32Dialog_Spell.cpp 2000/06/21 19:41:35 @@ -47,6 +47,7 @@ AP_Win32Dialog_Spell::AP_Win32Dialog_Spell(XAP_DialogFactory * pDlgFactory, XAP_Dialog_Id id) : AP_Dialog_Spell(pDlgFactory,id) { + m_bChangingSelection = 0; } AP_Win32Dialog_Spell::~AP_Win32Dialog_Spell(void) @@ -246,7 +247,9 @@ SendMessage(m_hwndSuggest, LB_SETCURSEL, m_iSelectedRow, 0); // populate the change field, if appropriate + m_bChangingSelection = 1; _suggestChange(); + m_bChangingSelection = 0; } void AP_Win32Dialog_Spell::_suggestChange(void) @@ -408,12 +411,12 @@ case EN_CHANGE: if (GetWindowTextLength(hWndCtrl)) { -#if 0 -// TODO: this looks plausible, but it causes more problems than it solves - m_iSelectedRow = -1; - SendMessage(m_hwndSuggest, LB_SETCURSEL, m_iSelectedRow, 0); -#endif - _toggleChangeButtons(UT_TRUE); + if( !m_bChangingSelection ) + { + m_iSelectedRow = -1; + SendMessage(m_hwndSuggest, LB_SETCURSEL, m_iSelectedRow, 0); + _toggleChangeButtons(UT_TRUE); + } } else { @@ -429,12 +432,16 @@ switch (HIWORD(wParam)) { case LBN_SELCHANGE: + m_bChangingSelection = 1; _suggestChange(); + m_bChangingSelection = 0; return 1; case LBN_DBLCLK: + m_bChangingSelection = 1; UT_ASSERT((m_iSelectedRow == SendMessage(hWndCtrl, LB_GETCURSEL, 0, 0))); _change(); + m_bChangingSelection = 0; return 1; default: Index: src/wp/ap/win/ap_Win32Dialog_Spell.h =================================================================== RCS file: /cvsroot/abi/src/wp/ap/win/ap_Win32Dialog_Spell.h,v retrieving revision 1.3 diff -u -r1.3 ap_Win32Dialog_Spell.h --- src/wp/ap/win/ap_Win32Dialog_Spell.h 1999/10/14 01:50:45 1.3 +++ src/wp/ap/win/ap_Win32Dialog_Spell.h 2000/06/21 19:41:35 @@ -53,6 +53,7 @@ HWND m_hwndChangeTo; // AP_RID_DIALOG_SPELL_EDIT_CHANGE HWND m_hwndSuggest; // AP_RID_DIALOG_SPELL_LIST_SUGGEST + BOOL m_bChangingSelection; }; #endif /* AP_WIN32DIALOG_SPELL_H */