diff options
Diffstat (limited to 'src/text-editing.cpp')
| -rw-r--r-- | src/text-editing.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/text-editing.cpp b/src/text-editing.cpp index 8f005d86a..44b323989 100644 --- a/src/text-editing.cpp +++ b/src/text-editing.cpp @@ -34,6 +34,7 @@ #include "sp-flowtext.h" #include "sp-flowdiv.h" #include "sp-flowregion.h" +#include "sp-item-group.h" #include "sp-tref.h" #include "sp-tspan.h" @@ -62,6 +63,22 @@ static void te_update_layout_now (SPItem *item) item->updateRepr(); } +void te_update_layout_now_recursive(SPItem *item) +{ + if (SP_IS_GROUP(item)) { + GSList *item_list = sp_item_group_item_list(SP_GROUP(item)); + for(GSList* elem = item_list; elem; elem = elem->next) { + SPItem* list_item = (SPItem*) elem->data; + te_update_layout_now_recursive(list_item); + } + g_slist_free(item_list); + } else if (SP_IS_TEXT(item)) + SP_TEXT(item)->rebuildLayout(); + else if (SP_IS_FLOWTEXT (item)) + SP_FLOWTEXT(item)->rebuildLayout(); + item->updateRepr(); +} + bool sp_te_output_is_empty(SPItem const *item) { Inkscape::Text::Layout const *layout = te_get_layout(item); |
