From 9537df8d6f9dc2f1747d679f539446e81d3ceb8c Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Wed, 10 Feb 2016 20:20:49 +0000 Subject: [PATCH] svg.js: Implement the pathSegList interface (Forum #49085) git-svn-id: https://svn.fhem.de/fhem/trunk@10792 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_SVG.pm | 4 ++-- fhem/www/pgm2/svg.js | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) 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}); }