From 2c56c6f6aea3dceab602ff2c7332cd5920150d3f Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Wed, 3 Oct 2012 03:00:51 +0800 Subject: [PATCH] cross-browser linear gradient --- src/HTMLRenderer/draw.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/HTMLRenderer/draw.cc b/src/HTMLRenderer/draw.cc index 169c2b6..d63b405 100644 --- a/src/HTMLRenderer/draw.cc +++ b/src/HTMLRenderer/draw.cc @@ -194,12 +194,16 @@ LinearGradient::LinearGradient (GfxAxialShading * shading, void LinearGradient::dumpto (ostream & out) { - out << "background-image:-moz-linear-gradient(" << _round(angle) << "rad"; - for(auto iter = stops.begin(); iter != stops.end(); ++iter) + auto prefixes = {"", "-ms-", "-moz-", "-webkit-", "-o-"}; + for(auto iter = prefixes.begin(); iter != prefixes.end(); ++iter) { - out << "," << (iter->rgb) << " " << _round((iter->pos) * 100) << "%"; + out << "background-image:" << (*iter) << "linear-gradient(" << _round(angle) << "rad"; + for(auto iter2 = stops.begin(); iter2 != stops.end(); ++iter2) + { + out << "," << (iter2->rgb) << " " << _round((iter2->pos) * 100) << "%"; + } + out << ");"; } - out << ");"; } GBool HTMLRenderer::axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax)