From 7461f83414df4ec4cb0a68943253d06a524f9f8e Mon Sep 17 00:00:00 2001 From: "Jake.Stine" Date: Mon, 21 Jun 2010 04:04:32 +0000 Subject: [PATCH] UI / Cmdline: * Fullscreen mode should be remembered/applied properly now. * implemented --fullscreen and --windowed options * Made the --help popup a lot prettier git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3249 96395faa-99c1-11dd-bbfe-3dabce05a288 --- common/include/Utilities/pxStaticText.h | 1 + common/include/Utilities/wxGuiTools.h | 19 +++-- common/src/Utilities/pxStaticText.cpp | 6 ++ common/src/Utilities/wxGuiTools.cpp | 17 ++++- pcsx2/gui/App.h | 27 +++++++ pcsx2/gui/AppConfig.cpp | 3 + pcsx2/gui/AppConfig.h | 2 + pcsx2/gui/AppInit.cpp | 14 ++-- pcsx2/gui/AppMain.cpp | 97 +++++++++++++++++++++++-- pcsx2/gui/ConsoleLogger.cpp | 2 +- pcsx2/gui/Dialogs/AssertionDialog.cpp | 3 +- pcsx2/gui/FrameForGS.cpp | 41 ++++++++++- pcsx2/gui/GSFrame.h | 11 ++- pcsx2/gui/GlobalCommands.cpp | 4 +- pcsx2/gui/MainFrame.cpp | 2 +- plugins/spu2-x/src/defs.h | 2 +- 16 files changed, 215 insertions(+), 36 deletions(-) diff --git a/common/include/Utilities/pxStaticText.h b/common/include/Utilities/pxStaticText.h index 267f6cf803..ff059931f5 100644 --- a/common/include/Utilities/pxStaticText.h +++ b/common/include/Utilities/pxStaticText.h @@ -72,6 +72,7 @@ public: pxStaticText& SetMinHeight( int height ); pxStaticText& SetHeight( int lines ); + pxStaticText& Align( wxAlignment align ); pxStaticText& Bold(); pxStaticText& WrapAt( int width ); diff --git a/common/include/Utilities/wxGuiTools.h b/common/include/Utilities/wxGuiTools.h index 9405df2a7a..d37fe9a0d1 100644 --- a/common/include/Utilities/wxGuiTools.h +++ b/common/include/Utilities/wxGuiTools.h @@ -621,13 +621,15 @@ protected: class pxTextWrapperBase { protected: - bool m_eol; - int m_linecount; + bool m_eol; + int m_linecount; + wxString m_indent; public: virtual ~pxTextWrapperBase() throw() { } - pxTextWrapperBase() + pxTextWrapperBase( const wxString& indent=wxEmptyString ) + : m_indent( indent ) { m_eol = false; m_linecount = 0; @@ -664,10 +666,13 @@ class pxTextWrapper : public pxTextWrapperBase typedef pxTextWrapperBase _parent; protected: - wxString m_text; + wxString m_text; public: - pxTextWrapper() : pxTextWrapperBase() { } + pxTextWrapper( const wxString& wrapPrefix=wxEmptyString ) + : pxTextWrapperBase( wrapPrefix ) + { } + virtual ~pxTextWrapper() throw() { } const wxString& GetResult() const @@ -679,8 +684,8 @@ public: pxTextWrapper& Wrap( const wxWindow* win, const wxString& text, int widthMax ); protected: - virtual void OnOutputLine(const wxString& line); - virtual void OnNewLine(); + void OnOutputLine(const wxString& line); + void OnNewLine(); }; // -------------------------------------------------------------------------------------- diff --git a/common/src/Utilities/pxStaticText.cpp b/common/src/Utilities/pxStaticText.cpp index 86040e8e82..90947b4596 100644 --- a/common/src/Utilities/pxStaticText.cpp +++ b/common/src/Utilities/pxStaticText.cpp @@ -85,6 +85,12 @@ pxStaticText& pxStaticText::SetHeight( int lines ) return *this; } +pxStaticText& pxStaticText::Align( wxAlignment align ) +{ + m_align = align; + return *this; +} + pxStaticText& pxStaticText::Bold() { wxFont bold( GetFont() ); diff --git a/common/src/Utilities/wxGuiTools.cpp b/common/src/Utilities/wxGuiTools.cpp index 25ba14a0f3..cb62995464 100644 --- a/common/src/Utilities/wxGuiTools.cpp +++ b/common/src/Utilities/wxGuiTools.cpp @@ -264,7 +264,7 @@ wxSizerFlags pxSizerFlags::Checkbox() } // -------------------------------------------------------------------------------------- -// pxTextWrapper / pxTextWrapperBase Implementations +// pxTextWrapper / pxTextWrapperBase (mplementations) // -------------------------------------------------------------------------------------- pxTextWrapperBase& pxTextWrapperBase::Wrap( const wxWindow& win, const wxString& text, int widthMax ) @@ -272,6 +272,8 @@ pxTextWrapperBase& pxTextWrapperBase::Wrap( const wxWindow& win, const wxString& if( text.IsEmpty() ) return *this; const wxChar *lastSpace = NULL; + bool wasWrapped = false; + wxString line; line.Alloc( text.Length()+12 ); @@ -283,12 +285,17 @@ pxTextWrapperBase& pxTextWrapperBase::Wrap( const wxWindow& win, const wxString& OnNewLine(); lastSpace = NULL; - line.clear(); lineStart = p; + + if(wasWrapped) + line = m_indent; + else + line.clear(); } if ( *p == L'\n' || *p == L'\0' ) { + wasWrapped = false; DoOutputLine(line); if ( *p == L'\0' ) @@ -296,7 +303,7 @@ pxTextWrapperBase& pxTextWrapperBase::Wrap( const wxWindow& win, const wxString& } else // not EOL { - if ( *p == L' ' ) + if ( *p == L' ' || *p == L',' || *p == L'/' ) lastSpace = p; line += *p; @@ -308,6 +315,8 @@ pxTextWrapperBase& pxTextWrapperBase::Wrap( const wxWindow& win, const wxString& if ( width > widthMax ) { + wasWrapped = true; + // remove the last word from this line line.erase(lastSpace - lineStart, p + 1 - lineStart); DoOutputLine(line); @@ -366,7 +375,7 @@ void pxTextWrapper::OnNewLine() } // -------------------------------------------------------------------------------------- -// ScopedBusyCursor Implementations +// ScopedBusyCursor (implementations) // -------------------------------------------------------------------------------------- std::stack ScopedBusyCursor::m_cursorStack; diff --git a/pcsx2/gui/App.h b/pcsx2/gui/App.h index 1ea07b9e68..147649ef3c 100644 --- a/pcsx2/gui/App.h +++ b/pcsx2/gui/App.h @@ -391,6 +391,12 @@ public: } }; +enum GsWindowMode_t +{ + GsWinMode_Unspecified = 0, + GsWinMode_Windowed, + GsWinMode_Fullscreen, +}; class CommandlineOverrides { @@ -406,11 +412,14 @@ public: bool UseGamefix[GamefixId_COUNT]; bool ApplyCustomGamefixes; + GsWindowMode_t GsWindowMode; + public: CommandlineOverrides() { DisableSpeedhacks = false; ApplyCustomGamefixes = false; + GsWindowMode = GsWinMode_Unspecified; } // Returns TRUE if either speedhacks or gamefixes are being overridden. @@ -433,6 +442,23 @@ public: } }; +// -------------------------------------------------------------------------------------- +// Pcsx2AppTraits +// -------------------------------------------------------------------------------------- +// Overrides and customizes some default wxWidgets behaviors. This class is instanized by +// calls to Pcsx2App::CreateTraits(), which is called from wxWidgets as-needed. wxWidgets +// does cache an instance of the traits, so the object construction need not be trivial +// (translation: it can be complicated-ish -- it won't affect performance). +// +class Pcsx2AppTraits : public wxGUIAppTraits +{ + typedef wxGUIAppTraits _parent; + +public: + virtual ~Pcsx2AppTraits() {} + wxMessageOutput* CreateMessageOutput(); +}; + // ===================================================================================================== // Pcsx2App - main wxApp class // ===================================================================================================== @@ -624,6 +650,7 @@ public: // -------------------------------------------------------------------------- // Overrides of wxApp virtuals: // -------------------------------------------------------------------------- + wxAppTraits* CreateTraits(); bool OnInit(); int OnExit(); void CleanUp(); diff --git a/pcsx2/gui/AppConfig.cpp b/pcsx2/gui/AppConfig.cpp index 1524a9eb54..dde1eed1cf 100644 --- a/pcsx2/gui/AppConfig.cpp +++ b/pcsx2/gui/AppConfig.cpp @@ -623,6 +623,7 @@ AppConfig::GSWindowOptions::GSWindowOptions() WindowSize = wxSize( 640, 480 ); WindowPos = wxDefaultPosition; IsMaximized = false; + IsFullscreen = false; } void AppConfig::GSWindowOptions::SanityCheck() @@ -657,6 +658,8 @@ void AppConfig::GSWindowOptions::LoadSave( IniInterface& ini ) IniEntry( WindowSize ); IniEntry( WindowPos ); + IniEntry( IsMaximized ); + IniEntry( IsFullscreen ); static const wxChar* AspectRatioNames[] = { diff --git a/pcsx2/gui/AppConfig.h b/pcsx2/gui/AppConfig.h index 4cd0e14e29..9f79ee6cc8 100644 --- a/pcsx2/gui/AppConfig.h +++ b/pcsx2/gui/AppConfig.h @@ -147,6 +147,7 @@ public: { // Closes the GS/Video port on escape (good for fullscreen activity) bool CloseOnEsc; + bool DefaultToFullscreen; bool AlwaysHideMouse; bool DisableResizeBorders; @@ -157,6 +158,7 @@ public: wxSize WindowSize; wxPoint WindowPos; bool IsMaximized; + bool IsFullscreen; GSWindowOptions(); diff --git a/pcsx2/gui/AppInit.cpp b/pcsx2/gui/AppInit.cpp index d5eccf4e21..e392cfc475 100644 --- a/pcsx2/gui/AppInit.cpp +++ b/pcsx2/gui/AppInit.cpp @@ -282,8 +282,7 @@ void Pcsx2App::AllocateCoreStuffs() g_Conf->EmuOptions.Recompiler.EnableIOP = false; } - if( !m_CoreAllocs->IsRecAvailable_MicroVU0() ) - { + if( !m_CoreAllocs->IsRecAvailable_MicroVU0() ) { scrollableTextArea->AppendText( L"* microVU0\n\n" ); g_Conf->EmuOptions.Recompiler.UseMicroVU0 = false; g_Conf->EmuOptions.Recompiler.EnableVU0 = g_Conf->EmuOptions.Recompiler.EnableVU0 && m_CoreAllocs->IsRecAvailable_SuperVU0(); @@ -347,7 +346,9 @@ void Pcsx2App::OnInitCmdLine( wxCmdLineParser& parser ) parser.AddParam( _("IsoFile"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL ); parser.AddSwitch( L"h", L"help", _("displays this list of command line options"), wxCMD_LINE_OPTION_HELP ); - parser.AddSwitch( wxEmptyString,L"console", _("forces the program log/console to be visible") ); + parser.AddSwitch( wxEmptyString,L"console", _("forces the program log/console to be visible"), wxCMD_LINE_VAL_STRING ); + parser.AddSwitch( wxEmptyString,L"fullscreen", _("use fullscreen GS mode") ); + parser.AddSwitch( wxEmptyString,L"windowed", _("use windowed GS mode") ); parser.AddSwitch( wxEmptyString,L"nogui", _("disables display of the gui while running games") ); parser.AddOption( wxEmptyString,L"elf", _("executes an ELF image"), wxCMD_LINE_VAL_STRING ); @@ -381,13 +382,13 @@ bool Pcsx2App::ParseOverrides( wxCmdLineParser& parser ) { wxString dest; - if( parser.Found( L"cfgpath", &dest ) && !dest.IsEmpty() ) + if (parser.Found( L"cfgpath", &dest ) && !dest.IsEmpty()) { Console.Warning( L"Config path override: " + dest ); Overrides.SettingsFolder = dest; } - if( parser.Found( L"cfg", &dest ) && !dest.IsEmpty() ) + if (parser.Found( L"cfg", &dest ) && !dest.IsEmpty()) { Console.Warning( L"Config file override: " + dest ); Overrides.SettingsFile = dest; @@ -395,6 +396,9 @@ bool Pcsx2App::ParseOverrides( wxCmdLineParser& parser ) Overrides.DisableSpeedhacks = parser.Found(L"nohacks"); + if (parser.Found(L"fullscreen")) Overrides.GsWindowMode = GsWinMode_Fullscreen; + if (parser.Found(L"windowed")) Overrides.GsWindowMode = GsWinMode_Windowed; + const PluginInfo* pi = tbl_PluginInfo; do { if( !parser.Found( pi->GetShortname().Lower(), &dest ) ) continue; diff --git a/pcsx2/gui/AppMain.cpp b/pcsx2/gui/AppMain.cpp index 57ed672dad..4ad87a2762 100644 --- a/pcsx2/gui/AppMain.cpp +++ b/pcsx2/gui/AppMain.cpp @@ -265,6 +265,75 @@ void Pcsx2App::PadKeyDispatch( const keyEvent& ev ) } } +// -------------------------------------------------------------------------------------- +// Pcsx2AppTraits (implementations) +// -------------------------------------------------------------------------------------- + +class pxMessageOutputMessageBox : public wxMessageOutput +{ +public: + pxMessageOutputMessageBox() { } + + virtual void Printf(const wxChar* format, ...); +}; + +void pxMessageOutputMessageBox::Printf(const wxChar* format, ...) +{ + using namespace pxSizerFlags; + + va_list args; + va_start(args, format); + wxString out; + out.PrintfV(format, args); + va_end(args); + + int pos = out.Find( L"[IsoFile]" ); + + if(pos == wxNOT_FOUND) + { + Msgbox::Alert( out ); return; + } + + pos += 9; // strlen of [IsoFile] + + wxDialogWithHelpers popup( NULL, _("PCSX2 Commandline Options") ); + popup.SetMinWidth( 640 ); + popup += popup.Heading(out.Mid(0, pos)); + //popup += ; + //popup += popup.Text(out.Mid(pos, out.Length())).Align( wxALIGN_LEFT ) | pxExpand.Border(wxALL, StdPadding*3); + + wxTextCtrl* traceArea = new wxTextCtrl( + &popup, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, + wxTE_READONLY | wxTE_MULTILINE | wxTE_RICH2 | wxHSCROLL + ); + + traceArea->SetDefaultStyle( wxTextAttr( wxNullColour, wxNullColour, pxGetFixedFont() ) ); + traceArea->SetFont( pxGetFixedFont() ); + + int fonty = traceArea->GetCharHeight(); + + traceArea->SetMinSize( wxSize( traceArea->GetMinWidth(), (fonty+1)*18 ) ); + traceArea->WriteText( pxTextWrapper(wxString(L' ', 18)).Wrap(traceArea, out.Mid(pos, out.Length()), 600).GetResult() ); + traceArea->SetInsertionPoint( 0 ); + traceArea->ShowPosition( 0 ); + + popup += traceArea | pxExpand.Border(wxALL, StdPadding*3); + + pxIssueConfirmation(popup, MsgButtons().Close() ); +} + +wxMessageOutput* Pcsx2AppTraits::CreateMessageOutput() +{ +#ifdef __UNIX__ + return _parent::CreateMessageOutput(); +#else + return new pxMessageOutputMessageBox; +#endif +} + +// -------------------------------------------------------------------------------------- +// FramerateManager (implementations) +// -------------------------------------------------------------------------------------- void FramerateManager::Reset() { //memzero( m_fpsqueue ); @@ -302,6 +371,10 @@ double FramerateManager::GetFramerate() const return (double)GetTickFrequency() / (double)ticks_per_frame; } +// ---------------------------------------------------------------------------- +// Pcsx2App Event Handlers +// ---------------------------------------------------------------------------- + // LogicalVsync - Event received from the AppCoreThread (EEcore) for each vsync, // roughly 50/60 times a second when frame limiting is enabled, and up to 10,000 // times a second if not (ok, not quite, but you get the idea... I hope.) @@ -332,10 +405,6 @@ void Pcsx2App::LogicalVsync() } } -// ---------------------------------------------------------------------------- -// Pcsx2App Event Handlers -// ---------------------------------------------------------------------------- - HashTools::HashMap GlobalAccels( 0, 0xffffffff ); void Pcsx2App::OnEmuKeyDown( wxKeyEvent& evt ) @@ -512,6 +581,11 @@ void Pcsx2App::ClearPendingSave() } } +wxAppTraits* Pcsx2App::CreateTraits() +{ + return new Pcsx2AppTraits; +} + // This method generates debug assertions if the MainFrame handle is NULL (typically // indicating that PCSX2 is running in NoGUI mode, or that the main frame has been // closed). In most cases you'll want to use HasMainFrame() to test for thread @@ -672,13 +746,26 @@ void AppLoadSettings() void AppSaveSettings() { - if( wxGetApp().Rpc_TryInvokeAsync(AppSaveSettings) ) return; + // If multiple SaveSettings messages are requested, we want to ignore most of them. + // Saving settings once when the GUI is idle should be fine. :) + + static u32 isPosted = false; + + if( !wxThread::IsMain() ) + { + if( AtomicExchange(isPosted, true) ) + wxGetApp().PostIdleMethod( AppSaveSettings ); + + return; + } if( !wxFile::Exists( g_Conf->CurrentIso ) ) g_Conf->CurrentIso.clear(); sApp.GetRecentIsoManager().Add( g_Conf->CurrentIso ); + AtomicExchange( isPosted, false ); + AppIniSaver saver; g_Conf->LoadSave( saver ); sApp.DispatchEvent( saver ); diff --git a/pcsx2/gui/ConsoleLogger.cpp b/pcsx2/gui/ConsoleLogger.cpp index bf30de1238..5b24b0d063 100644 --- a/pcsx2/gui/ConsoleLogger.cpp +++ b/pcsx2/gui/ConsoleLogger.cpp @@ -475,7 +475,7 @@ void ConsoleLogFrame::OnDockedMove( wxCommandEvent& event ) void ConsoleLogFrame::OnMoveAround( wxMoveEvent& evt ) { - if( IsBeingDeleted() || IsIconized() ) return; + if( IsBeingDeleted() || !IsVisible() || IsIconized() ) return; // Docking check! If the window position is within some amount // of the main window, enable docking. diff --git a/pcsx2/gui/Dialogs/AssertionDialog.cpp b/pcsx2/gui/Dialogs/AssertionDialog.cpp index 31c58a2de1..fccfeee5e1 100644 --- a/pcsx2/gui/Dialogs/AssertionDialog.cpp +++ b/pcsx2/gui/Dialogs/AssertionDialog.cpp @@ -42,8 +42,7 @@ Dialogs::AssertionDialog::AssertionDialog( const wxString& text, const wxString& traceArea->SetDefaultStyle( wxTextAttr( wxNullColour, wxNullColour, pxGetFixedFont() ) ); traceArea->SetFont( pxGetFixedFont() ); - int fonty; - traceArea->GetTextExtent( L"blaH yeah", NULL, &fonty ); + int fonty = traceArea->GetCharHeight(); traceArea->WriteText( stacktrace ); traceArea->SetMinSize( wxSize( traceArea->GetMinWidth(), (fonty+1)*18 ) ); diff --git a/pcsx2/gui/FrameForGS.cpp b/pcsx2/gui/FrameForGS.cpp index b3153f93b2..969f5cb781 100644 --- a/pcsx2/gui/FrameForGS.cpp +++ b/pcsx2/gui/FrameForGS.cpp @@ -245,7 +245,6 @@ GSFrame::GSFrame(wxWindow* parent, const wxString& title) , m_timer_UpdateTitle( this ) { SetIcons( wxGetApp().GetIconBundle() ); - SetClientSize( g_Conf->GSWindow.WindowSize ); SetBackgroundColour( *wxBLACK ); @@ -281,6 +280,22 @@ void GSFrame::OnCloseWindow(wxCloseEvent& evt) evt.Skip(); // and close it. } +bool GSFrame::ShowFullScreen(bool show, long style) +{ + if( show != IsFullScreen() ) + Console.WriteLn( Color_StrongMagenta, "(gsFrame) Switching to %s mode...", show ? "Fullscreen" : "Windowed" ); + + _parent::ShowFullScreen( show ); + + if( g_Conf->GSWindow.IsFullscreen != show ) + { + g_Conf->GSWindow.IsFullscreen = show; + AppSaveSettings(); + return true; + } + + return false; +} wxStaticText* GSFrame::GetLabel_OutputDisabled() const { @@ -308,7 +323,7 @@ bool GSFrame::Show( bool shown ) { GSPanel* gsPanel = GetViewport(); - if( gsPanel == NULL || gsPanel->IsBeingDeleted() ) + if( !gsPanel || gsPanel->IsBeingDeleted() ) { gsPanel = new GSPanel( this ); m_id_gspanel = gsPanel->GetId(); @@ -321,6 +336,22 @@ bool GSFrame::Show( bool shown ) if( wxStaticText* label = GetLabel_OutputDisabled() ) label->Show( EmuConfig.GS.DisableOutput ); + switch( wxGetApp().Overrides.GsWindowMode ) + { + case GsWinMode_Windowed: + g_Conf->GSWindow.IsFullscreen = false; + break; + + case GsWinMode_Fullscreen: + g_Conf->GSWindow.IsFullscreen = true; + break; + + case GsWinMode_Unspecified: + g_Conf->GSWindow.IsFullscreen = g_Conf->GSWindow.DefaultToFullscreen; + break; + } + + ShowFullScreen( g_Conf->GSWindow.IsFullscreen ); m_timer_UpdateTitle.Start( TitleBarUpdateMs ); } else @@ -404,9 +435,11 @@ void GSFrame::OnMove( wxMoveEvent& evt ) evt.Skip(); + g_Conf->GSWindow.IsMaximized = IsMaximized(); + // evt.GetPosition() returns the client area position, not the window frame position. - if( !IsFullScreen() && !IsMaximized() && IsVisible() ) - g_Conf->GSWindow.WindowPos = GetScreenPosition(); + if( !g_Conf->GSWindow.IsMaximized && !IsFullScreen() && !IsIconized() && IsVisible() ) + g_Conf->GSWindow.WindowPos = GetScreenPosition(); // wxGTK note: X sends gratuitous amounts of OnMove messages for various crap actions // like selecting or deselecting a window, which muck up docking logic. We filter them diff --git a/pcsx2/gui/GSFrame.h b/pcsx2/gui/GSFrame.h index 3b1456046b..e2d785423b 100644 --- a/pcsx2/gui/GSFrame.h +++ b/pcsx2/gui/GSFrame.h @@ -32,7 +32,8 @@ extern LimiterModeType g_LimiterMode; // -------------------------------------------------------------------------------------- // GSPanel // -------------------------------------------------------------------------------------- -class GSPanel : public wxWindow, public EventListener_AppStatus +class GSPanel : public wxWindow + , public EventListener_AppStatus { typedef wxWindow _parent; @@ -71,9 +72,9 @@ protected: // -------------------------------------------------------------------------------------- // GSFrame // -------------------------------------------------------------------------------------- -class GSFrame : public wxFrame, - public EventListener_AppStatus, - public EventListener_CoreThread +class GSFrame : public wxFrame + , public EventListener_AppStatus + , public EventListener_CoreThread { typedef wxFrame _parent; @@ -95,6 +96,8 @@ public: bool Show( bool shown=true ); wxStaticText* GetLabel_OutputDisabled() const; + bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL); + protected: void OnCloseWindow( wxCloseEvent& evt ); void OnMove( wxMoveEvent& evt ); diff --git a/pcsx2/gui/GlobalCommands.cpp b/pcsx2/gui/GlobalCommands.cpp index ed1b55f9c6..27bf792a07 100644 --- a/pcsx2/gui/GlobalCommands.cpp +++ b/pcsx2/gui/GlobalCommands.cpp @@ -216,8 +216,8 @@ namespace Implementations void FullscreenToggle() { - g_Conf->GSWindow.DefaultToFullscreen = !g_Conf->GSWindow.DefaultToFullscreen; - sGSFrame.ShowFullScreen( g_Conf->GSWindow.DefaultToFullscreen ); + if( GSFrame* gsframe = wxGetApp().GetGsFramePtr() ) + gsframe->ShowFullScreen( !gsframe->IsFullScreen() ); } } diff --git a/pcsx2/gui/MainFrame.cpp b/pcsx2/gui/MainFrame.cpp index b2881e2313..b54baa00b6 100644 --- a/pcsx2/gui/MainFrame.cpp +++ b/pcsx2/gui/MainFrame.cpp @@ -107,7 +107,7 @@ void MainEmuFrame::OnCloseWindow(wxCloseEvent& evt) void MainEmuFrame::OnMoveAround( wxMoveEvent& evt ) { - if( IsBeingDeleted() || IsIconized() ) return; + if( IsBeingDeleted() || !IsVisible() || IsIconized() ) return; // Uncomment this when doing logger stress testing (and then move the window around // while the logger spams itself) diff --git a/plugins/spu2-x/src/defs.h b/plugins/spu2-x/src/defs.h index 5705c4e96c..48fa5c18f7 100644 --- a/plugins/spu2-x/src/defs.h +++ b/plugins/spu2-x/src/defs.h @@ -268,8 +268,8 @@ struct V_ReverbBuffers s32 IIR_SRC_A0; s32 IIR_SRC_A1; - s32 IIR_SRC_B1; s32 IIR_SRC_B0; + s32 IIR_SRC_B1; s32 IIR_DEST_A0; s32 IIR_DEST_A1; s32 IIR_DEST_B0;