undid the patches which shouldn't (IMHO) have been applied to this branch

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-07-04 17:26:36 +00:00
parent 9cc02d047b
commit 0ef2ebbafc
3 changed files with 13 additions and 50 deletions

View File

@@ -269,17 +269,11 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
event.SetString(value); event.SetString(value);
event.SetEventObject(this); event.SetEventObject(this);
return ProcessCommand(event); ProcessCommand(event);
} }
break; break;
} }
// I don't think the following should be true. The return value is
// whether the event has been handled, not the status of the handling.
// So, we only return false if the switch fell through. This will
// resolve the same event being sent multiple times by MS Windows.
// mea 05-22-01
// there is no return value for the CBN_ notifications, so always return // there is no return value for the CBN_ notifications, so always return
// FALSE from here to pass the message to DefWindowProc() // FALSE from here to pass the message to DefWindowProc()
return FALSE; return FALSE;

View File

@@ -965,30 +965,8 @@ wxThreadError wxThread::Delete(ExitCode *pRc)
HANDLE hThread = m_internal->GetHandle(); HANDLE hThread = m_internal->GetHandle();
// Check if thread is really still running. There is a // does is still run?
// race condition in WinThreadStart between the time the if ( isRunning || IsRunning() )
// m_internal->m_state is set to STATE_EXITED and the win32
// thread actually exits. It can be flagged as STATE_EXITED
// and then we don't wait for it to exit. This will cause
// GetExitCodeThread to return STILL_ACTIVE.
if ( !isRunning )
{
if ( !IsRunning() )
{
if ( ::GetExitCodeThread(hThread, (LPDWORD)&rc) )
{
if ((DWORD)rc == STILL_ACTIVE)
isRunning = TRUE;
}
}
else
{
isRunning = TRUE;
}
}
// does it still run?
if ( isRunning )
{ {
if ( IsMain() ) if ( IsMain() )
{ {
@@ -1044,24 +1022,13 @@ wxThreadError wxThread::Delete(ExitCode *pRc)
break; break;
case WAIT_OBJECT_0 + 1: case WAIT_OBJECT_0 + 1:
// new message arrived, process it
if ( !wxTheApp->DoMessage() )
{ {
MSG peekMsg; // WM_QUIT received: kill the thread
// Check if a new message has really arrived. Kill();
// MsgWaitForMultipleObjects can indicate that a message
// is ready for processing, but this message may be sucked return wxTHREAD_KILLED;
// up by GetMessage and then GetMessage will hang and not
// allow us to process the actual thread exit event.
if (::PeekMessage(&peekMsg, (HWND) NULL, 0, 0, PM_NOREMOVE))
{
// new message arrived, process it
if ( !wxTheApp->DoMessage() )
{
// WM_QUIT received: kill the thread
Kill();
return wxTHREAD_KILLED;
}
}
} }
break; break;

View File

@@ -382,9 +382,11 @@ void wxToolTip::SetWindow(wxWindow *win)
// something like this where the derived class can do such things // something like this where the derived class can do such things
// itself instead of wxToolTip "knowing" about them all // itself instead of wxToolTip "knowing" about them all
wxComboBox *combo = wxDynamicCast(control, wxComboBox); wxComboBox *combo = wxDynamicCast(control, wxComboBox);
if ( combo && !(combo->GetWindowStyle() & wxCB_READONLY)) if ( combo )
{ {
WXHWND hwndComboEdit = combo->GetEditHWND(); WXHWND hwndComboEdit = combo->GetWindowStyle() & wxCB_READONLY
? combo->GetHWND()
: combo->GetEditHWND();
if ( hwndComboEdit ) if ( hwndComboEdit )
{ {
Add(hwndComboEdit); Add(hwndComboEdit);