From 54e9c839bcafe52fc16fa7fc6c1eefcdf1f8e825 Mon Sep 17 00:00:00 2001 From: that Date: Wed, 4 Nov 2015 21:46:01 +0100 Subject: gui: fix default styles if object type is in element name Change-Id: I4bc46d1772fee2ec77d95732fa3f69c267c2c34e --- gui/pages.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'gui') 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 + // Search for stylename in the parent node 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 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; -- cgit v1.2.3