summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gui/pages.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/gui/pages.cpp b/gui/pages.cpp
index 3abd28785..0a1de96f3 100644
--- a/gui/pages.cpp
+++ b/gui/pages.cpp
@@ -137,20 +137,20 @@ xml_node<>* FindNode(xml_node<>* parent, const char* nodename, int depth /* = 0
style = style->next_sibling("style");
}
} else {
- // Search for stylename in the parent node <object type="foo" stylename="foo2">
+ // Search for stylename in the parent node <object type="foo" style="foo2">
xml_attribute<>* attr = parent->first_attribute("style");
// If no style is found anywhere else and the node wasn't found in the object itself
// as a special case we will search for a style that uses the same style name as the
// object type, so <object type="button"> would search for a style named "button"
if (!attr)
attr = parent->first_attribute("type");
- if (attr) {
- xml_node<>* node = PageManager::FindStyle(attr->value());
- if (node) {
- xml_node<>* stylenode = FindNode(node, nodename, depth + 1);
- if (stylenode)
- return stylenode;
- }
+ // if there's no attribute type, the object type must be the element name
+ std::string stylename = attr ? attr->value() : parent->name();
+ xml_node<>* node = PageManager::FindStyle(stylename);
+ if (node) {
+ xml_node<>* stylenode = FindNode(node, nodename, depth + 1);
+ if (stylenode)
+ return stylenode;
}
}
return NULL;