//maybe we should have a critical section per window instead??
CSingleLock lock(g_graphicsContext);
+ if (!g_windowManager.Initialized())
+ return; // don't do anything
+
m_dialogClosing = false;
m_bModal = true;
// set running before it's added to the window manager, else the auto-show code
if (m_bRunning && !m_dialogClosing && !IsAnimating(ANIM_TYPE_WINDOW_CLOSE)) return;
+ if (!g_windowManager.Initialized())
+ return; // don't do anything
+
m_bModal = false;
// set running before it's added to the window manager, else the auto-show code
bool CGUIWindow::Initialize()
{
+ if (!g_windowManager.Initialized())
+ return false; // can't load if we have no skin yet
return Load(GetProperty("xmlfile"));
}
m_pCallback = NULL;
m_bShowOverlay = true;
m_iNested = 0;
+ m_initialized = false;
}
CGUIWindowManager::~CGUIWindowManager(void)
void CGUIWindowManager::Initialize()
{
LoadNotOnDemandWindows();
+ m_initialized = true;
}
bool CGUIWindowManager::SendMessage(int message, int senderID, int destID, int param1, int param2)
// clear our vectors of windows
m_vecCustomWindows.clear();
m_activeDialogs.clear();
+
+ m_initialized = false;
}
/// \brief Route to a window
on screen. It should only be called from the application thread.
*/
void FrameMove();
-
+
+ /*! \brief Return whether the window manager is initialized.
+ The window manager is initialized on skin load - if the skin isn't yet loaded,
+ no windows should be able to be initialized.
+ \return true if the window manager is initialized, false otherwise.
+ */
+ bool Initialized() const { return m_initialized; };
+
CGUIWindow* GetWindow(int id) const;
void Process(bool renderOnly = false);
void SetCallback(IWindowManagerCallback& callback);
bool m_bShowOverlay;
int m_iNested;
+ bool m_initialized;
};
/*!