* Changed "wxPendingEvents" to pointers (tested on GTK)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Guilhem Lavaux 1999-04-03 09:24:52 +00:00
parent 103aec296a
commit 4d3a259aff
9 changed files with 88 additions and 33 deletions

View File

@ -80,8 +80,8 @@
#if wxUSE_THREADS
/* To put pending event handlers */
extern wxList wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker;
extern wxList *wxPendingEvents;
extern wxCriticalSection *wxPendingEventsLocker;
#endif
/*
@ -342,9 +342,9 @@ bool wxEvtHandler::ProcessThreadEvent(wxEvent& event)
m_pendingEvents->Append(event_main);
wxPendingEventsLocker.Enter();
wxPendingEvents.Append(this);
wxPendingEventsLocker.Leave();
wxPendingEventsLocker->Enter();
wxPendingEvents->Append(this);
wxPendingEventsLocker->Leave();
return TRUE;
}

View File

@ -47,8 +47,8 @@ wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
extern wxList wxPendingDelete;
#if wxUSE_THREADS
extern wxList wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker;
extern wxList *wxPendingEvents;
extern wxCriticalSection *wxPendingEventsLocker;
#endif
extern wxResourceCache *wxTheResourceCache;
@ -380,8 +380,8 @@ void wxApp::Dispatch()
#if wxUSE_THREADS
void wxApp::ProcessPendingEvents()
{
wxNode *node = wxPendingEvents.First();
wxCriticalSectionLocker locker(wxPendingEventsLocker);
wxNode *node = wxPendingEvents->First();
wxCriticalSectionLocker locker(*wxPendingEventsLocker);
while (node)
{
@ -391,7 +391,7 @@ void wxApp::ProcessPendingEvents()
delete node;
node = wxPendingEvents.First();
node = wxPendingEvents->First();
}
}
#endif
@ -435,6 +435,13 @@ bool wxApp::Initialize()
wxSystemSettings::Init();
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
wxPendingEvents = new wxList();
wxPendingEventsLocker = new wxCriticalSection();
#endif
/*
wxTheFontNameDirectory = new wxFontNameDirectory;
wxTheFontNameDirectory->Initialize();
@ -495,6 +502,13 @@ void wxApp::CleanUp()
delete wxTheApp;
wxTheApp = (wxApp*) NULL;
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
delete wxPendingEvents;
delete wxPendingEventsLocker;
#endif
wxSystemSettings::Done();
delete[] wxBuffer;

View File

@ -40,8 +40,8 @@ wxList wxPendingDelete;
#if wxUSE_THREADS
/* List of events pending processing */
wxList wxPendingEvents;
wxCriticalSection wxPendingEventsLocker;
wxList *wxPendingEvents = NULL;
wxCriticalSection *wxPendingEventsLocker = NULL;
#endif
/* Current cursor, in order to hang on to

View File

@ -47,8 +47,8 @@ wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
extern wxList wxPendingDelete;
#if wxUSE_THREADS
extern wxList wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker;
extern wxList *wxPendingEvents;
extern wxCriticalSection *wxPendingEventsLocker;
#endif
extern wxResourceCache *wxTheResourceCache;
@ -380,8 +380,8 @@ void wxApp::Dispatch()
#if wxUSE_THREADS
void wxApp::ProcessPendingEvents()
{
wxNode *node = wxPendingEvents.First();
wxCriticalSectionLocker locker(wxPendingEventsLocker);
wxNode *node = wxPendingEvents->First();
wxCriticalSectionLocker locker(*wxPendingEventsLocker);
while (node)
{
@ -391,7 +391,7 @@ void wxApp::ProcessPendingEvents()
delete node;
node = wxPendingEvents.First();
node = wxPendingEvents->First();
}
}
#endif
@ -435,6 +435,13 @@ bool wxApp::Initialize()
wxSystemSettings::Init();
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
wxPendingEvents = new wxList();
wxPendingEventsLocker = new wxCriticalSection();
#endif
/*
wxTheFontNameDirectory = new wxFontNameDirectory;
wxTheFontNameDirectory->Initialize();
@ -495,6 +502,13 @@ void wxApp::CleanUp()
delete wxTheApp;
wxTheApp = (wxApp*) NULL;
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
delete wxPendingEvents;
delete wxPendingEventsLocker;
#endif
wxSystemSettings::Done();
delete[] wxBuffer;

View File

@ -40,8 +40,8 @@ wxList wxPendingDelete;
#if wxUSE_THREADS
/* List of events pending processing */
wxList wxPendingEvents;
wxCriticalSection wxPendingEventsLocker;
wxList *wxPendingEvents = NULL;
wxCriticalSection *wxPendingEventsLocker = NULL;
#endif
/* Current cursor, in order to hang on to

View File

@ -51,8 +51,8 @@ extern char *wxBuffer;
extern wxList wxPendingDelete;
#if wxUSE_THREADS
extern wxList wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker;
extern wxList *wxPendingEvents;
extern wxCriticalSection *wxPendingEventsLocker;
#endif // wxUSE_THREADS
wxApp *wxTheApp = NULL;
@ -75,6 +75,13 @@ bool wxApp::Initialize()
wxClassInfo::InitializeClasses();
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
wxPendingEvents = new wxList();
wxPendingEventsLocker = new wxCriticalSection();
#endif
wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING);
wxTheColourDatabase->Initialize();
@ -152,6 +159,13 @@ void wxApp::CleanUp()
delete wxTheApp;
wxTheApp = NULL;
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
delete wxPendingEvents;
delete wxPendingEventsLocker;
#endif
#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT
// At this point we want to check if there are any memory
// blocks that aren't part of the wxDebugContext itself,
@ -496,8 +510,8 @@ void wxApp::DeletePendingObjects()
#if wxUSE_THREADS
void wxApp::ProcessPendingEvents()
{
wxNode *node = wxPendingEvents.First();
wxCriticalSectionLocker locker(wxPendingEventsLocker);
wxNode *node = wxPendingEvents->First();
wxCriticalSectionLocker locker(*wxPendingEventsLocker);
while (node)
{
@ -506,7 +520,7 @@ void wxApp::ProcessPendingEvents()
handler->ProcessPendingEvents();
delete node;
node = wxPendingEvents.First();
node = wxPendingEvents->First();
}
}
#endif // wxUSE_THREADS

View File

@ -29,8 +29,8 @@ wxList wxPendingDelete;
#if wxUSE_THREADS
// List of events pending propagation
wxList wxPendingEvents;
wxCriticalSection wxPendingEventsLocker;
wxList *wxPendingEvents = NULL;
wxCriticalSection *wxPendingEventsLocker = NULL;
#endif
int wxPageNumber;

View File

@ -93,8 +93,8 @@ extern char *wxOsVersion;
extern wxList *wxWinHandleList;
extern wxList WXDLLEXPORT wxPendingDelete;
#if wxUSE_THREADS
extern wxList wxPendingEvents;
extern wxCriticalSection wxPendingEventsLocker;
extern wxList *wxPendingEvents;
extern wxCriticalSection *wxPendingEventsLocker;
#endif
extern void wxSetKeyboardHook(bool doIt);
extern wxCursor *g_globalCursor;
@ -169,6 +169,12 @@ bool wxApp::Initialize()
wxGetResource("wxWindows", "OsVersion", &wxOsVersion);
#endif
// I'm annoyed ... I don't know where to put this and I don't want to create // a module for that as it's part of the core.
#if wxUSE_THREADS
wxPendingEvents = new wxList();
wxPendingEventsLocker = new wxCriticalSection();
#endif
wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING);
wxTheColourDatabase->Initialize();
@ -551,6 +557,13 @@ void wxApp::CleanUp()
if (wxWinHandleList)
delete wxWinHandleList ;
// GL: I'm annoyed ... I don't know where to put this and I don't want to
// create a module for that as it's part of the core.
#if wxUSE_THREADS
delete wxPendingEvents;
delete wxPendingEventsLocker;
#endif
wxClassInfo::CleanUpClasses();
delete wxTheApp;
@ -922,8 +935,8 @@ bool wxApp::ProcessIdle()
#if wxUSE_THREADS
void wxApp::ProcessPendingEvents()
{
wxNode *node = wxPendingEvents.First();
wxCriticalSectionLocker locker(wxPendingEventsLocker);
wxNode *node = wxPendingEvents->First();
wxCriticalSectionLocker locker(*wxPendingEventsLocker);
while (node)
{
@ -932,7 +945,7 @@ void wxApp::ProcessPendingEvents()
handler->ProcessPendingEvents();
delete node;
node = wxPendingEvents.First();
node = wxPendingEvents->First();
}
}
#endif

View File

@ -39,8 +39,8 @@ wxList WXDLLEXPORT wxPendingDelete;
// List of events pending processing
#if wxUSE_THREADS
wxList wxPendingEvents;
wxCriticalSection wxPendingEventsLocker;
wxList *wxPendingEvents = NULL;
wxCriticalSection *wxPendingEventsLocker = NULL;
#endif
// Current cursor, in order to hang on to