Commit de94bf27 authored by SergeyLuzyanin's avatar SergeyLuzyanin

fix bug 35731

parent a19887ff
...@@ -1074,15 +1074,12 @@ MoveState.prototype = ...@@ -1074,15 +1074,12 @@ MoveState.prototype =
var start_arr = this.drawingObjects.getAllObjectsOnPage(0); var start_arr = this.drawingObjects.getAllObjectsOnPage(0);
var min_dx = null, min_dy = null; var min_dx = null, min_dy = null;
var dx, dy; var dx, dy;
var snap_x = null, snap_y = null; var snap_x = [], snap_y = [];
var snapHorArray = [], snapVerArray = []; var snapHorArray = [], snapVerArray = [];
if(result_x === this.startX)
{
min_dx = 0; //-------------------------------------------------
}
else
{
for(var track_index = 0; track_index < _arr_track_objects.length; ++track_index) for(var track_index = 0; track_index < _arr_track_objects.length; ++track_index)
{ {
var cur_track_original_shape = _arr_track_objects[track_index].originalObject; var cur_track_original_shape = _arr_track_objects[track_index].originalObject;
...@@ -1096,19 +1093,24 @@ MoveState.prototype = ...@@ -1096,19 +1093,24 @@ MoveState.prototype =
if(isRealObject(snap_obj)) if(isRealObject(snap_obj))
{ {
dx = snap_obj.dist; dx = snap_obj.dist;
console.log(dx);
if(dx !== null) if(dx !== null)
{ {
if(min_dx === null) if(min_dx === null)
{ {
min_dx = dx; min_dx = dx;
snap_x = snap_obj.pos; snap_x.push(snap_obj.pos);
} }
else else
{ {
if(Math.abs(min_dx) > Math.abs(dx)) if(AscFormat.fApproxEqual(min_dx, dx, 0.01)){
snap_x.push(snap_obj.pos);
}
else if(Math.abs(min_dx) > Math.abs(dx))
{ {
min_dx = dx; min_dx = dx;
snap_x = snap_obj.pos; snap_x.length = 0;
snap_x.push(snap_obj.pos);
} }
} }
} }
...@@ -1123,20 +1125,24 @@ MoveState.prototype = ...@@ -1123,20 +1125,24 @@ MoveState.prototype =
if(isRealObject(snap_obj)) if(isRealObject(snap_obj))
{ {
dx = snap_obj.dist; dx = snap_obj.dist;
console.log(dx);
if(dx !== null) if(dx !== null)
{ {
if(min_dx === null) if(min_dx === null)
{ {
snap_x = snap_obj.pos;
min_dx = dx; min_dx = dx;
snap_x.push(snap_obj.pos);
} }
else else
{ {
if(Math.abs(min_dx) > Math.abs(dx)) if(AscFormat.fApproxEqual(min_dx, dx, 0.01)){
snap_x.push(snap_obj.pos);
}
else if(Math.abs(min_dx) > Math.abs(dx))
{ {
min_dx = dx; min_dx = dx;
snap_x = snap_obj.pos; snap_x.length = 0;
} snap_x.push(snap_obj.pos);
} }
} }
} }
...@@ -1144,13 +1150,12 @@ MoveState.prototype = ...@@ -1144,13 +1150,12 @@ MoveState.prototype =
} }
} }
} }
if(result_x === this.startX)
if(result_y === this.startY)
{ {
min_dy = 0; min_dx = 0;
} }
else
{ //-----------------------------
for(track_index = 0; track_index < _arr_track_objects.length; ++track_index) for(track_index = 0; track_index < _arr_track_objects.length; ++track_index)
{ {
cur_track_original_shape = _arr_track_objects[track_index].originalObject; cur_track_original_shape = _arr_track_objects[track_index].originalObject;
...@@ -1169,14 +1174,18 @@ MoveState.prototype = ...@@ -1169,14 +1174,18 @@ MoveState.prototype =
if(min_dy === null) if(min_dy === null)
{ {
min_dy = dy; min_dy = dy;
snap_y = snap_obj.pos; snap_y.push(snap_obj.pos);
} }
else else
{ {
if(Math.abs(min_dy) > Math.abs(dy)) if(AscFormat.fApproxEqual(min_dy, dy, 0.01)){
snap_y.push(snap_obj.pos);
}
else if(Math.abs(min_dy) > Math.abs(dy))
{ {
min_dy = dy; min_dy = dy;
snap_y = snap_obj.pos; snap_y.length = 0;
snap_y.push(snap_obj.pos);
} }
} }
} }
...@@ -1196,14 +1205,18 @@ MoveState.prototype = ...@@ -1196,14 +1205,18 @@ MoveState.prototype =
if(min_dy === null) if(min_dy === null)
{ {
min_dy = dy; min_dy = dy;
snap_y = snap_obj.pos; snap_y.push(snap_obj.pos);
} }
else else
{ {
if(Math.abs(min_dy) > Math.abs(dy)) if(AscFormat.fApproxEqual(min_dy, dy, 0.01)){
snap_y.push(snap_obj.pos);
}
else if(Math.abs(min_dy) > Math.abs(dy))
{ {
min_dy = dy; min_dy = dy;
snap_y = snap_obj.pos; snap_y.length = 0;
snap_y.push(snap_obj.pos);
} }
} }
} }
...@@ -1211,16 +1224,21 @@ MoveState.prototype = ...@@ -1211,16 +1224,21 @@ MoveState.prototype =
} }
} }
} }
if(result_y === this.startY)
{
min_dy = 0;
} }
if(min_dx === null || Math.abs(min_dx) > SNAP_DISTANCE) if(min_dx === null || Math.abs(min_dx) > SNAP_DISTANCE)
min_dx = 0; min_dx = 0;
else else
{ {
if(AscFormat.isRealNumber(snap_x) && this.drawingObjects.drawingObjects.cSld) if(this.drawingObjects.drawingObjects.cSld)
{ {
this.drawingObjects.getDrawingDocument().DrawVerAnchor(pageIndex, snap_x); for(var i = 0; i < snap_x.length; ++i){
this.drawingObjects.getDrawingDocument().DrawVerAnchor(pageIndex, snap_x[i]);
}
} }
} }
...@@ -1228,9 +1246,11 @@ MoveState.prototype = ...@@ -1228,9 +1246,11 @@ MoveState.prototype =
min_dy = 0; min_dy = 0;
else else
{ {
if(AscFormat.isRealNumber(snap_y) && this.drawingObjects.drawingObjects.cSld) if(this.drawingObjects.drawingObjects.cSld)
{ {
this.drawingObjects.getDrawingDocument().DrawHorAnchor(pageIndex, snap_y); for(var i = 0; i < snap_y.length; ++i){
this.drawingObjects.getDrawingDocument().DrawHorAnchor(pageIndex, snap_y[i]);
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment