From 0e2706a6b8f54ee62465872d86e681aac14d612f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Mon, 14 Feb 2011 15:59:11 +0100 Subject: [PATCH] =?UTF-8?q?Corrections=20de=20bugs,=20am=C3=A9liorations.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Quand on clique sur un bloc sans le déplacer, ne pas mettre l'opacité à 0.5 * Quand on clique sur un bloc, le faire passer devant les autres * Les bords de largeur 1px sont flous car le bord est à cheval sur deux pixels. J'ai trouvé une solution, mais il y a des problèmes (des pixels manquent parfois dans les coins des rectangles). --- grunt.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/grunt.js b/grunt.js index c5dc434..42ee718 100644 --- a/grunt.js +++ b/grunt.js @@ -16,13 +16,22 @@ Raphael.fn.marginText = function (x,y,text,margin) { return t; }; +function floorCeil(a,b,c,d) { + var x1 = a; + var y1 = b; + var x2 = a+c; + var y2 = b+d; + +} + Raphael.fn.boundingRect = function(margin) { margin = +margin || 0; var set = this.set(); set.push.apply(set,arguments); var size = set.getBBox(); var rect = this.rect(size.x-margin, size.y-margin, size.width+2*margin, size.height+2*margin); - rect.set = set.push(rect); + /* Pour des bords nets : rect.node.style.shapeRendering = "crispEdges"; */ + rect.set = this.set().push(rect,set); return rect; }; @@ -37,9 +46,11 @@ function Block(name) { var start = function () { this.oldDx = 0; this.oldDy = 0; - this.attr({opacity: 0.5}); + this.firstMove = true; + this.toFront(); }; var move = function (dx, dy) { + if (this.firstMove) { this.firstMove = false; this.attr({opacity: 0.5}); } this.translate(dx-this.oldDx, dy-this.oldDy); this.oldDx = dx; this.oldDy = dy;