diff options
| author | bulia byak <buliabyak@gmail.com> | 2007-02-24 19:21:04 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2007-02-24 19:21:04 +0000 |
| commit | 83f562ad85594fde9bf32cac2ada434eb40db24b (patch) | |
| tree | 45f0b7d0e7145f86c2e56cd3e20f29be4cd9777a | |
| parent | make selection_contains_both_clone_and_original reusable (diff) | |
| download | inkscape-83f562ad85594fde9bf32cac2ada434eb40db24b.tar.gz inkscape-83f562ad85594fde9bf32cac2ada434eb40db24b.zip | |
some more refactoring
(bzr r2425)
| -rw-r--r-- | src/selection-chemistry.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index cf16aba60..86e6bdc90 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -1334,22 +1334,31 @@ void sp_selection_to_prev_layer () } bool +selection_contains_original (SPItem *item, Inkscape::Selection *selection) +{ + bool contains_original = false; + bool is_use = SP_IS_USE(item); + SPItem *item_use = item; + SPItem *item_use_first = item; + while (is_use && item_use && !contains_original) + { + item_use = sp_use_get_original (SP_USE(item_use)); + contains_original |= selection->includes(item_use); + if (item_use == item_use_first) + break; + is_use = SP_IS_USE(item_use); + } + return contains_original; +} + + +bool selection_contains_both_clone_and_original (Inkscape::Selection *selection) { bool clone_with_original = false; for (GSList const *l = selection->itemList(); l != NULL; l = l->next) { SPItem *item = SP_ITEM(l->data); - bool is_use = SP_IS_USE(item); - SPItem *item_use = item; - SPItem *item_use_first = item; - while (is_use && item_use && !clone_with_original) - { - item_use = sp_use_get_original (SP_USE(item_use)); - clone_with_original |= selection->includes(item_use); - if (item_use == item_use_first) - break; - is_use = SP_IS_USE(item_use); - } + clone_with_original |= selection_contains_original(item, selection); if (clone_with_original) break; } |
