diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp index 5b4ff61c462ae..d99703a731f7d 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -2358,13 +2358,6 @@ void CApplication::Render() if (m_bStop || m_bInBackground) return; - if (!m_AppActive && !m_bStop && (!IsPlayingVideo() || IsPaused())) - { - Sleep(1); - ResetScreenSaver(); - return; - } - MEASURE_FUNCTION; int vsync_mode = g_guiSettings.GetInt("videoscreen.vsync"); @@ -3081,8 +3074,8 @@ void CApplication::FrameMove(bool processEvents, bool processGUI) } } g_graphicsContext.Unlock(); - CWinEvents::MessagePump(); } + CWinEvents::MessagePump(); #if defined(HAS_LIRC) || defined(HAS_IRSERVERSUITE) // Read the input from a remote @@ -3672,7 +3665,6 @@ void CApplication::Stop(int exitCode) CLog::Log(LOGNOTICE, "Not saving settings (settings.xml is not present)"); m_bStop = true; - m_AppActive = false; m_AppFocused = false; m_ExitCode = exitCode; CLog::Log(LOGNOTICE, "stop all"); diff --git a/xbmc/Application.h b/xbmc/Application.h index 64eda218785c7..4e02f67a60a86 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h @@ -376,6 +376,7 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs CSplash* GetSplash() { return m_splash; } void SetRenderGUI(bool renderGUI); + bool GetRenderGUI() const { return m_renderGUI; }; bool SetLanguage(const CStdString &strLanguage); protected: diff --git a/xbmc/XBApplicationEx.cpp b/xbmc/XBApplicationEx.cpp index ad0c52ad6e218..07c2d5fddcff8 100644 --- a/xbmc/XBApplicationEx.cpp +++ b/xbmc/XBApplicationEx.cpp @@ -38,7 +38,6 @@ CXBApplicationEx::CXBApplicationEx() { // Variables to perform app timing m_bStop = false; - m_AppActive = true; m_AppFocused = true; m_ExitCode = EXITCODE_QUIT; m_renderGUI = false; @@ -53,7 +52,6 @@ bool CXBApplicationEx::Create() { // Variables to perform app timing m_bStop = false; - m_AppActive = true; m_AppFocused = true; m_ExitCode = EXITCODE_QUIT; diff --git a/xbmc/XBApplicationEx.h b/xbmc/XBApplicationEx.h index d228d13f570ff..2cb42e5cb86cb 100644 --- a/xbmc/XBApplicationEx.h +++ b/xbmc/XBApplicationEx.h @@ -40,7 +40,6 @@ class CXBApplicationEx : public IWindowManagerCallback // Variables for timing bool m_bStop; int m_ExitCode; - bool m_AppActive; bool m_AppFocused; bool m_renderGUI; diff --git a/xbmc/android/activity/XBMCApp.cpp b/xbmc/android/activity/XBMCApp.cpp index 87d3a6f9bbdff..81328090ec15b 100644 --- a/xbmc/android/activity/XBMCApp.cpp +++ b/xbmc/android/activity/XBMCApp.cpp @@ -306,8 +306,6 @@ void CXBMCApp::XBMC_Pause(bool pause) // Only send the PAUSE action if we are pausing XBMC and something is currently playing if (pause && g_application.IsPlaying() && !g_application.IsPaused()) CApplicationMessenger::Get().SendAction(CAction(ACTION_PAUSE), WINDOW_INVALID, true); - - g_application.m_AppActive = g_application.m_AppFocused = !pause; } void CXBMCApp::XBMC_Stop() diff --git a/xbmc/guilib/GUIWindowManager.cpp b/xbmc/guilib/GUIWindowManager.cpp index ff1ed54f21fe6..b4d7b59d8fa0a 100644 --- a/xbmc/guilib/GUIWindowManager.cpp +++ b/xbmc/guilib/GUIWindowManager.cpp @@ -511,11 +511,8 @@ void CGUIWindowManager::Process(unsigned int currentTime) pWindow->DoProcess(currentTime, dirtyregions); } - if (g_application.m_AppActive) - { - for (CDirtyRegionList::iterator itr = dirtyregions.begin(); itr != dirtyregions.end(); itr++) - m_tracker.MarkDirtyRegion(*itr); - } + for (CDirtyRegionList::iterator itr = dirtyregions.begin(); itr != dirtyregions.end(); itr++) + m_tracker.MarkDirtyRegion(*itr); } void CGUIWindowManager::MarkDirty() diff --git a/xbmc/windowing/WinEventsSDL.cpp b/xbmc/windowing/WinEventsSDL.cpp index fde4f73887907..c266c1e58ba26 100644 --- a/xbmc/windowing/WinEventsSDL.cpp +++ b/xbmc/windowing/WinEventsSDL.cpp @@ -240,8 +240,8 @@ bool CWinEventsSDL::MessagePump() //If the window was inconified or restored if( event.active.state & SDL_APPACTIVE ) { - g_application.m_AppActive = event.active.gain != 0; - g_Windowing.NotifyAppActiveChange(g_application.m_AppActive); + g_application.SetRenderGUI(event.active.gain != 0); + g_Windowing.NotifyAppActiveChange(g_application.GetRenderGUI()); } else if (event.active.state & SDL_APPINPUTFOCUS) { diff --git a/xbmc/windowing/windows/WinEventsWin32.cpp b/xbmc/windowing/windows/WinEventsWin32.cpp index d778a03f53673..471bb9bf2ab01 100644 --- a/xbmc/windowing/windows/WinEventsWin32.cpp +++ b/xbmc/windowing/windows/WinEventsWin32.cpp @@ -432,11 +432,11 @@ LRESULT CALLBACK CWinEventsWin32::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, L break; case WM_SHOWWINDOW: { - bool active = g_application.m_AppActive; - g_application.m_AppActive = wParam != 0; - if (g_application.m_AppActive != active) - g_Windowing.NotifyAppActiveChange(g_application.m_AppActive); - CLog::Log(LOGDEBUG, __FUNCTION__"Window is %s", g_application.m_AppActive ? "shown" : "hidden"); + bool active = g_application.GetRenderGUI(); + g_application.SetRenderGUI(wParam != 0); + if (g_application.GetRenderGUI() != active) + g_Windowing.NotifyAppActiveChange(g_application.GetRenderGUI()); + CLog::Log(LOGDEBUG, __FUNCTION__"Window is %s", g_application.GetRenderGUI() ? "shown" : "hidden"); } break; case WM_ACTIVATE: @@ -444,10 +444,10 @@ LRESULT CALLBACK CWinEventsWin32::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, L if( WA_INACTIVE != wParam ) g_Joystick.Reinitialize(); - bool active = g_application.m_AppActive; + bool active = g_application.GetRenderGUI(); if (HIWORD(wParam)) { - g_application.m_AppActive = false; + g_application.SetRenderGUI(false); } else { @@ -456,16 +456,16 @@ LRESULT CALLBACK CWinEventsWin32::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, L if (LOWORD(wParam) != WA_INACTIVE) { if (GetWindowPlacement(hWnd, &lpwndpl)) - g_application.m_AppActive = lpwndpl.showCmd != SW_HIDE; + g_application.SetRenderGUI(lpwndpl.showCmd != SW_HIDE); } else { - g_application.m_AppActive = g_Windowing.WindowedMode(); + g_application.SetRenderGUI(g_Windowing.WindowedMode()); } } - if (g_application.m_AppActive != active) - g_Windowing.NotifyAppActiveChange(g_application.m_AppActive); - CLog::Log(LOGDEBUG, __FUNCTION__"Window is %s", g_application.m_AppActive ? "active" : "inactive"); + if (g_application.GetRenderGUI() != active) + g_Windowing.NotifyAppActiveChange(g_application.GetRenderGUI()); + CLog::Log(LOGDEBUG, __FUNCTION__"Window is %s", g_application.GetRenderGUI() ? "active" : "inactive"); } break; case WM_SETFOCUS: