diff options
-rw-r--r-- | utils/themeeditor/parsetreenode.cpp | 9 | ||||
-rw-r--r-- | utils/themeeditor/skin_parser.c | 18 |
2 files changed, 22 insertions, 5 deletions
diff --git a/utils/themeeditor/parsetreenode.cpp b/utils/themeeditor/parsetreenode.cpp index a93295f357..3f8936a54c 100644 --- a/utils/themeeditor/parsetreenode.cpp +++ b/utils/themeeditor/parsetreenode.cpp | |||
@@ -67,10 +67,13 @@ ParseTreeNode::ParseTreeNode(struct skin_element* data, ParseTreeNode* parent) | |||
67 | 67 | ||
68 | case VIEWPORT: | 68 | case VIEWPORT: |
69 | case LINE: | 69 | case LINE: |
70 | for(struct skin_element* current = data->children[0]; current; | 70 | for(int i = 0; i < data->children_count; i++) |
71 | current = current->next) | ||
72 | { | 71 | { |
73 | children.append(new ParseTreeNode(current, this)); | 72 | for(struct skin_element* current = data->children[i]; current; |
73 | current = current->next) | ||
74 | { | ||
75 | children.append(new ParseTreeNode(current, this)); | ||
76 | } | ||
74 | } | 77 | } |
75 | break; | 78 | break; |
76 | 79 | ||
diff --git a/utils/themeeditor/skin_parser.c b/utils/themeeditor/skin_parser.c index 4f7acf90fb..9fd9001790 100644 --- a/utils/themeeditor/skin_parser.c +++ b/utils/themeeditor/skin_parser.c | |||
@@ -98,7 +98,6 @@ struct skin_element* skin_parse_viewport(char** document) | |||
98 | 98 | ||
99 | retval = skin_alloc_element(); | 99 | retval = skin_alloc_element(); |
100 | retval->type = VIEWPORT; | 100 | retval->type = VIEWPORT; |
101 | retval->children = skin_alloc_children(1); | ||
102 | retval->children_count = 1; | 101 | retval->children_count = 1; |
103 | retval->line = skin_line; | 102 | retval->line = skin_line; |
104 | 103 | ||
@@ -109,6 +108,21 @@ struct skin_element* skin_parse_viewport(char** document) | |||
109 | 108 | ||
110 | int sublines = 0; /* Flag for parsing sublines */ | 109 | int sublines = 0; /* Flag for parsing sublines */ |
111 | 110 | ||
111 | /* Parsing out the viewport tag if there is one */ | ||
112 | if(check_viewport(cursor)) | ||
113 | { | ||
114 | retval->children_count = 2; | ||
115 | retval->children = skin_alloc_children(2); | ||
116 | retval->children[0] = skin_alloc_element(); | ||
117 | skin_parse_tag(retval->children[0], &cursor); | ||
118 | } | ||
119 | else | ||
120 | { | ||
121 | retval->children_count = 1; | ||
122 | retval->children = skin_alloc_children(1); | ||
123 | } | ||
124 | |||
125 | |||
112 | while(*cursor != '\0' && !(check_viewport(cursor) && cursor != *document)) | 126 | while(*cursor != '\0' && !(check_viewport(cursor) && cursor != *document)) |
113 | { | 127 | { |
114 | 128 | ||
@@ -182,7 +196,7 @@ struct skin_element* skin_parse_viewport(char** document) | |||
182 | 196 | ||
183 | *document = cursor; | 197 | *document = cursor; |
184 | 198 | ||
185 | retval->children[0] = root; | 199 | retval->children[retval->children_count - 1] = root; |
186 | return retval; | 200 | return retval; |
187 | 201 | ||
188 | } | 202 | } |