| 142 if(toplevel->container_end) { |
142 if(toplevel->container_end) { |
| 143 toplevel->container_end->next = NULL; |
143 toplevel->container_end->next = NULL; |
| 144 } else { |
144 } else { |
| 145 toplevel->container_begin = NULL; |
145 toplevel->container_begin = NULL; |
| 146 } |
146 } |
| |
147 |
| |
148 // TODO: free container? |
| 147 } |
149 } |
| |
150 |
| |
151 /* |
| |
152 * This might look like a weird function, but in case a container creates a |
| |
153 * sub-container, 2 container objects are added to the list, however we want |
| |
154 * only one container, otherwise ui_container_finish() would not work |
| |
155 */ |
| |
156 void uic_object_remove_second_last_container(UiObject *toplevel) { |
| |
157 if(toplevel->container_end && toplevel->container_end->prev) { |
| |
158 UiContainerX *end = toplevel->container_end; |
| |
159 UiContainerX *rm = toplevel->container_end->prev; |
| |
160 |
| |
161 end->prev = rm->prev; |
| |
162 if(rm->prev) { |
| |
163 rm->prev->next = end; |
| |
164 } else { |
| |
165 toplevel->container_begin = end; |
| |
166 } |
| |
167 |
| |
168 // TODO: free container? |
| |
169 } else { |
| |
170 fprintf(stderr, "Error: uic_object_remove_second_last_container expected at least 2 containers\n"); |
| |
171 } |
| |
172 } |