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);