Index: scribus/pageitem.cpp =================================================================== --- scribus/pageitem.cpp (Revision 26464) +++ scribus/pageitem.cpp (Arbeitskopie) @@ -6164,7 +6164,7 @@ fill_gradient = is->getOldState(); else fill_gradient = is->getNewState(); - if (gradientType() == 13) + if (gradientType() == Gradient_Conical) createConicalMesh(); update(); } Index: scribus/scribusdoc.cpp =================================================================== --- scribus/scribusdoc.cpp (Revision 26464) +++ scribus/scribusdoc.cpp (Arbeitskopie) @@ -8329,6 +8329,9 @@ for (int i = 0; i < selectedItemCount; ++i) { PageItem* currItem = itemSelection->itemAt(i); + + int oldType = currItem->gradientType(); + currItem->setGradientType(typ); switch (currItem->gradientType()) { @@ -8391,6 +8394,12 @@ currItem->updateGradientVectors(); if (currItem->gradientType() == Gradient_Conical) currItem->createConicalMesh(); + + // 17332: Conical gradient and mesh gradient are sharing the same meshGradientArray. + // We have to reset the array for mesh gradient to avoid a resue of the "fake" colors of the conical gradient + if (currItem->gradientType() == Gradient_Mesh && oldType == Gradient_Conical) + currItem->createGradientMesh(2, 2); + currItem->update(); } Index: scribus/ui/colorpicker/colorpicker_gradient.cpp =================================================================== --- scribus/ui/colorpicker/colorpicker_gradient.cpp (Revision 26464) +++ scribus/ui/colorpicker/colorpicker_gradient.cpp (Arbeitskopie) @@ -437,10 +437,10 @@ case Gradient_4Colors: gradType = VGradient::fourcolor; break; + case Gradient_Conical: case Gradient_Mesh: gradType = VGradient::mesh; break; - case Gradient_Conical: case Gradient_PatchMesh: gradType = VGradient::freemesh; break; Index: scribus/ui/propertiespalette_fill.cpp =================================================================== --- scribus/ui/propertiespalette_fill.cpp (Revision 26464) +++ scribus/ui/propertiespalette_fill.cpp (Arbeitskopie) @@ -370,6 +370,8 @@ blockUpdates(true); + m_doc->itemSelection_SetItemGradFill(buttonFillColor->type()); + switch(buttonFillColor->mode()) { default: @@ -444,7 +446,6 @@ break; } - m_doc->itemSelection_SetItemGradFill(buttonFillColor->type()); m_doc->itemSelection_SetOverprint(buttonFillColor->generalData().overprint); blockUpdates(false);