# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: sambut1987@gmail.com-20111004181747-6hcs1mj8dmtox1tm # target_branch: lp:inkscape # testament_sha1: 815eef54f272df609cf54d79783de630a5487d09 # timestamp: 2011-10-04 20:18:01 +0200 # base_revision_id: jon@joncruz.org-20111003072415-9idmrbb66wtcl9cg # # Begin patch === modified file 'src/desktop-style.cpp' --- src/desktop-style.cpp 2011-09-06 17:56:21 +0000 +++ src/desktop-style.cpp 2011-10-04 18:17:47 +0000 @@ -32,6 +32,7 @@ #include "sp-flowtext.h" #include "sp-flowregion.h" #include "sp-flowdiv.h" +#include "sp-item-group.h" #include "sp-linear-gradient.h" #include "sp-pattern.h" #include "sp-radial-gradient.h" @@ -405,6 +406,21 @@ return ret; } +/** + * Recursively build a simple list from an arbitrarily complex list + * of items or grouped items +*/ +GSList *objects_build_list_recursive (SPObject *element, GSList *simpleList) +{ + + if (SP_IS_GROUP(element)) { + for (SPObject *j = element->firstChild() ; j ; j = j->getNext() ) + simpleList = objects_build_list_recursive(j, simpleList); + } + else simpleList = g_slist_prepend(simpleList, element); + return simpleList; +} + /** Determine average stroke width, simple method */ // see TODO in dialogs/stroke-style.cpp on how to get rid of this eventually gdouble @@ -704,8 +720,14 @@ bool noneSet = true; // is stroke set to none? int n_stroked = 0; - + GSList *objectList = NULL; + for (GSList const *i = objects; i != NULL; i = i->next) { + SPObject *o = SP_OBJECT (i->data); + objectList=objects_build_list_recursive(o, objectList); + } + + for (GSList const *i = objectList; i != NULL; i = i->next) { SPObject *obj = SP_OBJECT (i->data); if (!SP_IS_ITEM(obj)) { continue; === modified file 'src/desktop-style.h' --- src/desktop-style.h 2010-11-17 02:12:56 +0000 +++ src/desktop-style.h 2011-10-04 18:17:47 +0000 @@ -66,6 +66,7 @@ void sp_desktop_apply_style_tool(SPDesktop *desktop, Inkscape::XML::Node *repr, Glib::ustring const &tool, bool with_text); gdouble stroke_average_width (GSList const *objects); +GSList *objects_build_list_recursive (SPObject *element, GSList *simpleList); int objects_query_fillstroke (GSList *objects, SPStyle *style_res, bool const isfill); int objects_query_fontnumbers (GSList *objects, SPStyle *style_res); # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWTDRcHAAAqlfgGSQeHf//1q1 3gC////6UAWMnrbm1Y3vXtIId3nbISiQZGgpPNT0mMTRMU/U0TRkaAwyTT1GQSUJoaMQ0qfpTyj0 npqekB6QBo9Q0AABJCmITSbRTbSh+qZ5UAPSMgyAyDTQASKTUnqemhPSYnlBppkekA0AAAGgBJIU 8piZT00xTJoym9U/U01G0gDE0aABoiRE9sfNoHy2u9vLxLZFsbM2aeUioW2NnLW2z9tlxw2q6G2C oSy2bIjLO6lHnO2/UAdjJJbZiKmDq+XT2ON1e/VdWXCMjpNwwzDMuvSsJysq2MO8YYOU2vlW5RiH ejfVNqgY5is8+g6zSu/bVm9SRzbD19I44m6BjzRAQOktHwlG2WJDza2mEKzn9M1+y3+RQl2Uvpxo QKiPUXXlywIb1LR7q8nsGsYKG0xPNQ4RBYYdJcXFmGKcBgLUBsTZM9mYSyyS5tFEzB01AhmSFU0z +yZK6ykpnkMIkEXXmKHSOQEMceuNimJgP1G9SpN7E0UFUHchU0mYjCgYq1CqKWRNMNjJIm7e9/IY 6uogkSQswsXV2Z5CkPE23N3CF85lQM5o0goq6IFNVXKsCzxzJG9Bi0iML9OHAXdA4gapFOQtbEJk XZxpbam1cd40Wd20TOnsKDuOw4sTKUW14W1Cu4aaK3qUoHzD30F8ww+GuvNEpq1VM1QmFPODgeg5 oSfDjfSll4FpipEjhXAV4aDTPRWOrOC7bWTMaRuN1JyLNNZAyFhNDJe+qIxFjjMwZS96JZyYoLR8 bSqwHMN8440MAHikq5sGVgOpCRr7cXQWujuUANTIlo3U5ZyDNBsFfi6wbOBo4oLdUBY3a8MMEFtm BlcRwfjUucCZco1mFTBaGTjbSxSlBI2WyZOrzNaW2zqWJio7V4a7L3L3aW1TaFKIBp0eadFJtv+z LI3Ckypnc0o6RaGahlGo3+IvZGsFeBBMrNxttRfPxpWeLhx/Thp2w66zicUHvGKjFFHCt4/UGtE9 JWKderkz15/owTTmYKCm6QRiCCI98A67nVI4hmJDjgTDek73cPf3R3C9te5G9I7XoLSy+2V1lsKk slBUv91t+VXcdoZk+Y9IGjLQ7wNPIYBSgbkBo+e6n/VLVrprdyKHxEZKxyetQGzaIPWw0LNvKZoA 7R7ohCyKMoYn4Y7rqbew7GZs/9xWZUgNt0eJWrnDgOIw2mIXbBgTG41kHLewY9AkQeW96CbA+nVX XftklWhSK+4TRi90i7tLDs27xftdTzIKY750MiRoqEGeO8bVEI4rcJL2VyoQxu1XGGQz6TP0mq4c mcenqbjOXdVVvdEkKrZqfkRwkbOfEqoK+joEPLpd1g0nE05gOTui3cBJK0RcOhmGsyVmTF2oXozF g62BGZ0Qs+CheJNEZQOThwQutw1vkiee3rRw+SBmAZF1R5+E6J2I5OVuJtYpAZQODBVWuhc5sRSL bPo3CHBBFbgkoIPRgJw5JiCHVkpw2aeaVFDp+gWwtZMgg46esUMRF16qSJZUQnNMwE2/LFRAhiuq YcBGMXUSL2FeQlCrdD73vFnPTSjJE2Blnnm2g5HH69TsdsFWHCm1jkjUNhOpYIuKqKvxVEpACRYo mGWaljCCdm9yDsWyVe7nhaHN5GhC8Go6MJJ+BeDUp8Y8Ml0RCUIcYvVJy0tbQejZfbomK4qcBfei nUdSYZ8b988J2wYzlx4847ytlRsREoFWbmH1qEeRhBJkPtIt1DZC9QNjRrNFbdmDYxs1UECLLATW ByKwe3/J1d6wyDS3tYvmeIDyikia2gRbIINB2WVgtWEN4t2JXjJD0HvmpImpI6U5twGfSKk8YtBK 6TsTPcVAtO+p7a0YOncbrP8XckU4UJAw0XBw