Maelstrom: Fixed anchoring for dialogs

https://github.com/libsdl-org/Maelstrom/commit/e386e8e7a4f6ff952cb52379d798899889ac1a74

From e386e8e7a4f6ff952cb52379d798899889ac1a74 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 28 Oct 2011 23:34:04 -0400
Subject: [PATCH] Fixed anchoring for dialogs

---
 screenlib/UIBaseElement.cpp | 18 ++++++++++++++++++
 screenlib/UIBaseElement.h   |  7 +------
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/screenlib/UIBaseElement.cpp b/screenlib/UIBaseElement.cpp
index 40903740..f6a93a0b 100644
--- a/screenlib/UIBaseElement.cpp
+++ b/screenlib/UIBaseElement.cpp
@@ -82,6 +82,24 @@ UIBaseElement::Load(rapidxml::xml_node<> *node, const UITemplates *templates)
 	return true;
 }
 
+UIArea *
+UIBaseElement::GetAnchorElement(const char *name)
+{
+	if (name) {
+		if (m_parent) {
+			return m_parent->GetElement(name);
+		} else {
+			return NULL;
+		}
+	} else {
+		if (m_parent) {
+			return m_parent;
+		} else {
+			return m_ui;
+		}
+	}
+}
+
 void
 UIBaseElement::Draw()
 {
diff --git a/screenlib/UIBaseElement.h b/screenlib/UIBaseElement.h
index 843a4206..4ba769d7 100644
--- a/screenlib/UIBaseElement.h
+++ b/screenlib/UIBaseElement.h
@@ -61,12 +61,7 @@ class UIBaseElement : public UIArea
 		return true;
 	}
 
-	virtual UIArea *GetAnchorElement(const char *name) {
-		if (!name) {
-			return m_parent;
-		}
-		return m_parent->GetElement(name);
-	}
+	virtual UIArea *GetAnchorElement(const char *name);
 
 	void AddElement(UIBaseElement *element) {
 		m_elements.add(element);