Bug 477911 [TSF] crash after committing long IME transaction string at losing focus r=VYV03354, sr=roc

This commit is contained in:
Masayuki Nakano 2009-03-09 11:38:12 +09:00
Родитель 09d85790f6
Коммит 8959279358
3 изменённых файлов: 749 добавлений и 429 удалений

Просмотреть файл

@ -116,7 +116,6 @@ nsTextStore::Create(nsWindow* aWindow,
PRBool
nsTextStore::Destroy(void)
{
Blur();
if (mWindow) {
// When blurred, Tablet Input Panel posts "blur" messages
// and try to insert text when the message is retrieved later.
@ -141,25 +140,6 @@ nsTextStore::Destroy(void)
return PR_TRUE;
}
PRBool
nsTextStore::Focus(void)
{
HRESULT hr = sTsfThreadMgr->SetFocus(mDocumentMgr);
NS_ENSURE_TRUE(SUCCEEDED(hr), PR_FALSE);
PR_LOG(sTextStoreLog, PR_LOG_ALWAYS,
("TSF: Focused\n"));
return PR_TRUE;
}
PRBool
nsTextStore::Blur(void)
{
sTsfThreadMgr->SetFocus(NULL);
PR_LOG(sTextStoreLog, PR_LOG_ALWAYS,
("TSF: Blurred\n"));
return PR_TRUE;
}
STDMETHODIMP
nsTextStore::QueryInterface(REFIID riid,
void** ppv)
@ -1374,8 +1354,11 @@ nsTextStore::OnFocusChange(PRBool aFocus,
return NS_ERROR_NOT_AVAILABLE;
if (aFocus) {
if (sTsfTextStore->Create(aWindow, aIMEEnabled))
sTsfTextStore->Focus();
PRBool bRet = sTsfTextStore->Create(aWindow, aIMEEnabled);
NS_ENSURE_TRUE(bRet, NS_ERROR_FAILURE);
NS_ENSURE_TRUE(sTsfTextStore->mDocumentMgr, NS_ERROR_FAILURE);
HRESULT hr = sTsfThreadMgr->SetFocus(sTsfTextStore->mDocumentMgr);
NS_ENSURE_TRUE(SUCCEEDED(hr), NS_ERROR_FAILURE);
} else {
sTsfTextStore->Destroy();
}

Просмотреть файл

@ -181,8 +181,6 @@ protected:
PRBool Create(nsWindow*, PRUint32);
PRBool Destroy(void);
PRBool Focus(void);
PRBool Blur(void);
// If aDispatchTextEvent is true, this method will dispatch text event if
// this is called during IME composing. aDispatchTextEvent should be true

Разница между файлами не показана из-за своего большого размера Загрузить разницу