diff --git a/fhem/FHEM/98_SVG.pm b/fhem/FHEM/98_SVG.pm index 3e850a721..4863e8d2c 100755 --- a/fhem/FHEM/98_SVG.pm +++ b/fhem/FHEM/98_SVG.pm @@ -1907,7 +1907,7 @@ SVG_render($$$$$$$$$$) my @tvals = split("[ ,]", $ret); if (@tvals > 2) { if ($tvals[0] ne "M") { # just points, no M/L - $ret = sprintf("M %d %d $lt $ret", $tvals[1],$tvals[2]); + $ret = sprintf("M %d,%d $lt $ret", $tvals[1],$tvals[2]); } } @@ -2054,7 +2054,7 @@ SVG_getControlPoints($) my $header = ""; foreach my $i (0..int(@vals)-1) { - $header .= $vals[$i] . " "; + $header .= $vals[$i] . ($i == 1 ? "," : " "); if ($vals[$i] eq "C" || $vals[$i] eq "Q") { my $lt = $vals[$i]; $i++; diff --git a/fhem/www/pgm2/svg.js b/fhem/www/pgm2/svg.js index 340de2c5b..d7aee6d6e 100644 --- a/fhem/www/pgm2/svg.js +++ b/fhem/www/pgm2/svg.js @@ -198,6 +198,22 @@ sv_menu(evt, embed) $("#content").append(par.div); var pl = selNode[arrName]; + if(!pl) { // chrome 48+ removed the pathSegList interface + function + myPathSegList(node) + { + this.arr = $(node).attr("d").split(/ */); + this.arr.splice(0,1); // remove M + this.arr.splice(1,1); // remove L/Q/etc + this.numberOfItems = this.arr.length; + this.getItem = function(pos) + { + var xy = this.arr[pos].split(","); + return { x:parseFloat(xy[0]), y:parseFloat(xy[1]) }; + } + } + selNode[arrName] = pl = new myPathSegList(selNode); + } if(pl.numberOfItems > 2) mousemove({pageX:pl.getItem(pl.numberOfItems-2).x}); }