From f1f44b1f4b8215b6c1cc2f5992d128cb50f2415b Mon Sep 17 00:00:00 2001
From: Patrick Simianer
Date: Sat, 19 Sep 2015 14:42:48 +0200
Subject: more glitches
---
edit.js | 42 +++++++++++++++++++++++++++++++-----------
1 file changed, 31 insertions(+), 11 deletions(-)
diff --git a/edit.js b/edit.js
index af1611d..0cf7c67 100644
--- a/edit.js
+++ b/edit.js
@@ -10,6 +10,7 @@ var r,
texts = [],
connections = {},
id = 0,
+ next_grid = 0,
// layout
margin = 30,
padding = margin/3,
@@ -193,14 +194,18 @@ var collide = function collide (obj)
debug = function () {
var s = "";
for (var i=0; i del_grid) {
+ target_shapes[i]["grid_"] -= 1;
+ }
+ if (g > max)
+ max = g;
+ }
+ next_grid = g;
+ if (!next_grid) // empty
+ next_grid = 0;
snap_to_grid(true);
return;
@@ -252,8 +269,8 @@ snap_to_grid = function (anim=false)
// left -> right
for (var i=0; i < target_shapes.length; i++) {
pos = target_shapes[i]["grid_"];
- id = target_shapes[i]["id_"];
- if (id == cur_id)
+ id_ = target_shapes[i]["id_"];
+ if (id_ == cur_id)
continue;
if (pos >= old_pos && pos <= new_pos) {
target_shapes[i]["grid_"] -= 1;
@@ -265,8 +282,8 @@ snap_to_grid = function (anim=false)
// right -> left
for (var i=0; i < target_shapes.length; i++) {
pos = target_shapes[i]["grid_"];
- id = target_shapes[i]["id_"];
- if (id == cur_id)
+ id_ = target_shapes[i]["id_"];
+ if (id_ == cur_id)
continue;
if (pos >= new_pos && pos <= old_pos) {
target_shapes[i]["grid_"] += 1;
@@ -341,8 +358,8 @@ var make_obj = function(x, text, type)
sh.drag(move, dragger, up).onDragOver( function(obj) { collide(obj); })
sh.attr({ cursor: "move" });
tx.drag(move, dragger, up);
- sh["grid_"] = id;
- sh["grid_tmp_"] = id;
+ sh["grid_"] = next_grid;
+ sh["grid_tmp_"] = next_grid;
sh.click(function() {
if (connect_mode) {
if (connections[conn_str(connect_mode_shape,this)]) {
@@ -416,6 +433,8 @@ var make_obj = function(x, text, type)
});
}
id++;
+ if (type == "target")
+ next_grid++;
},
add_obj = function()
{
@@ -427,15 +446,15 @@ add_obj = function()
}
}
if (!shapes[max_idx]) {
- make_obj(xbegin+padding, "X", "target", 0);
+ make_obj(xbegin+padding, "X", "target");
} else {
make_obj(shapes[max_idx].getBBox().x2+(margin-padding),
"X",
- "target",
- max+1);
+ "target");
}
r.setSize(r.width+target_shapes[target_shapes.length-1].getBBox().width+margin, r.height);
+ cur_drag = null;
snap_to_grid(true);
},
make_objs = function (a, type)
@@ -516,7 +535,7 @@ var init = function ()
rm_shape = r.rect(5, line_margin+ybegin, 50, box_height).attr({"fill":"#fff","stroke":0}).animate({"fill":"red"}, 2000);
rm_shape.toBack();
rm_shape["rm_shape_"] = true;
- rm_shape["id_"] = -1;
+ rm_shape["id_"] = -1;
// source objs
make_objs(source, "source");
// target objs
@@ -532,6 +551,7 @@ reset = function()
texts = [];
connections = {};
id = 0;
+ next_grid = 0;
cur_drag = null;
edit_mode = false;
cur_ed = null;
--
cgit v1.2.3