From 541ef9956e78c9ceecffe834b5e6b5f9e1d3c53e Mon Sep 17 00:00:00 2001 From: "Jake.Stine" Date: Sun, 24 Jan 2010 13:13:49 +0000 Subject: [PATCH] Fix some excessive idle event processing introduced by my earlier log spam commit. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2511 96395faa-99c1-11dd-bbfe-3dabce05a288 --- common/src/Utilities/wxAppWithHelpers.cpp | 1 - pcsx2/gui/ConsoleLogger.cpp | 14 ++++++++++---- pcsx2/gui/FrameForGS.cpp | 12 ++++++++++++ pcsx2/gui/MainFrame.h | 6 +++++- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/common/src/Utilities/wxAppWithHelpers.cpp b/common/src/Utilities/wxAppWithHelpers.cpp index ce5ab52c2a..624e38f422 100644 --- a/common/src/Utilities/wxAppWithHelpers.cpp +++ b/common/src/Utilities/wxAppWithHelpers.cpp @@ -101,7 +101,6 @@ void wxAppWithHelpers::DeletionDispatcher() void wxAppWithHelpers::OnIdleEvent( wxIdleEvent& evt ) { - evt.Skip(); m_PingTimer.Stop(); PingDispatcher( "Idle" ); } diff --git a/pcsx2/gui/ConsoleLogger.cpp b/pcsx2/gui/ConsoleLogger.cpp index a428df9d44..5845821be0 100644 --- a/pcsx2/gui/ConsoleLogger.cpp +++ b/pcsx2/gui/ConsoleLogger.cpp @@ -596,15 +596,21 @@ void ConsoleLogFrame::OnIdleEvent( wxIdleEvent& ) { // When the GUI is idle then it's a safe bet we can resume suspended console log // flushing, on the theory that the user's had a good chance to field user input. - m_flushevent_counter = 0; - m_timer_FlushLimiter.Stop(); - wxCommandEvent sendevt( wxEVT_FlushQueue ); - GetEventHandler()->AddPendingEvent( sendevt ); + if( m_flushevent_counter > 0 ) + { + m_flushevent_counter = 0; + m_timer_FlushLimiter.Stop(); + + wxCommandEvent sendevt( wxEVT_FlushQueue ); + GetEventHandler()->AddPendingEvent( sendevt ); + } } void ConsoleLogFrame::OnFlushLimiterTimer( wxTimerEvent& ) { + if( m_flushevent_counter == 0 ) return; + m_flushevent_counter = 0; wxCommandEvent sendevt( wxEVT_FlushQueue ); diff --git a/pcsx2/gui/FrameForGS.cpp b/pcsx2/gui/FrameForGS.cpp index f451f98851..e135ab31bd 100644 --- a/pcsx2/gui/FrameForGS.cpp +++ b/pcsx2/gui/FrameForGS.cpp @@ -269,6 +269,18 @@ wxStaticText* GSFrame::GetLabel_OutputDisabled() const return (wxStaticText*)FindWindowById( m_id_OutputDisabled ); } +void GSFrame::CoreThread_OnResumed() +{ + m_timer_UpdateTitle.Start( 333 ); +} + +void GSFrame::CoreThread_OnSuspended() +{ + // Could stop the timer outright here, tho no harm in having an occasional + // update here or there, just in case some state info changes while emu is suspended. + m_timer_UpdateTitle.Start( 2000 ); +} + // overrides base Show behavior. bool GSFrame::Show( bool shown ) { diff --git a/pcsx2/gui/MainFrame.h b/pcsx2/gui/MainFrame.h index dc1c973a2d..6cf3463b88 100644 --- a/pcsx2/gui/MainFrame.h +++ b/pcsx2/gui/MainFrame.h @@ -72,7 +72,9 @@ protected: // -------------------------------------------------------------------------------------- // GSFrame // -------------------------------------------------------------------------------------- -class GSFrame : public wxFrame, public EventListener_AppStatus +class GSFrame : public wxFrame, + public EventListener_AppStatus, + public EventListener_CoreThread { typedef wxFrame _parent; @@ -99,6 +101,8 @@ protected: void OnUpdateTitle( wxTimerEvent& evt ); void AppStatusEvent_OnSettingsApplied(); + void CoreThread_OnResumed(); + void CoreThread_OnSuspended(); }; struct PluginMenuAddition