From 469ddc7739bf144863f456460f6929aa03740565 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 23 Oct 2011 07:23:28 -0400
Subject: [PATCH] Don't double-load panels
---
screenlib/UIManager.cpp | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/screenlib/UIManager.cpp b/screenlib/UIManager.cpp
index d042b683..e794856c 100644
--- a/screenlib/UIManager.cpp
+++ b/screenlib/UIManager.cpp
@@ -115,14 +115,18 @@ UIPanel *
UIManager::LoadPanel(const char *name)
{
UIPanel *panel;
- char file[1024];
- sprintf(file, "%s/%s.xml", m_loadPath, name);
- panel = new UIPanel(this, name);
- if (!panel->Load(file)) {
- SetError("%s", panel->Error());
- delete panel;
- return false;
+ panel = GetPanel(name);
+ if (!name) {
+ char file[1024];
+
+ sprintf(file, "%s/%s.xml", m_loadPath, name);
+ panel = new UIPanel(this, name);
+ if (!panel->Load(file)) {
+ SetError("%s", panel->Error());
+ delete panel;
+ return false;
+ }
}
return panel;
}