aboutsummaryrefslogtreecommitdiff
path: root/js/tools
diff options
context:
space:
mode:
Diffstat (limited to 'js/tools')
-rwxr-xr-xjs/tools/Rotate3DToolBase.js11
-rwxr-xr-xjs/tools/SelectionTool.js19
-rwxr-xr-xjs/tools/Translate3DToolBase.js1
3 files changed, 22 insertions, 9 deletions
diff --git a/js/tools/Rotate3DToolBase.js b/js/tools/Rotate3DToolBase.js
index aa91b2f4..b04e8b0a 100755
--- a/js/tools/Rotate3DToolBase.js
+++ b/js/tools/Rotate3DToolBase.js
@@ -447,16 +447,13 @@ exports.Rotate3DToolBase = Montage.create(ModifierToolBase, {
447 iMat; 447 iMat;
448 for(var i = 0; i < len; i++) 448 for(var i = 0; i < len; i++)
449 { 449 {
450 // Reset to the identity matrix but retain the rotation values 450 // Reset to the identity matrix
451 item = this._targets[i]; 451 item = this._targets[i];
452 elt = item.elt;
453
454 // Reset to the identity matrix but retain the translation values
455 iMat = Matrix.I(4); 452 iMat = Matrix.I(4);
456 mat = item.mat; 453 mat = item.mat;
457 iMat[12] = mat[12]; 454// iMat[12] = mat[12];
458 iMat[13] = mat[13]; 455// iMat[13] = mat[13];
459 iMat[14] = mat[14]; 456// iMat[14] = mat[14];
460 457
461 dist = this._undoArray[i].dist; 458 dist = this._undoArray[i].dist;
462 459
diff --git a/js/tools/SelectionTool.js b/js/tools/SelectionTool.js
index 37029e8c..caa9e8d6 100755
--- a/js/tools/SelectionTool.js
+++ b/js/tools/SelectionTool.js
@@ -305,16 +305,33 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
305 newHeight.push(_h + "px"); 305 newHeight.push(_h + "px");
306 306
307 viewUtils.setMatrixForElement(elt, previousMat); 307 viewUtils.setMatrixForElement(elt, previousMat);
308
309 this._targets[i].mat = previousMat;
310 this._targets[i].matInv = glmat4.inverse(previousMat, []);
308 } 311 }
309 } 312 }
310 if(addToUndoStack) 313 if(addToUndoStack)
311 { 314 {
312 ElementsMediator.setProperties(this.application.ninja.selectedElements, 315 // if we have a delta, that means the transform handles were used and
316 // we should update the width and height too. Otherwise, just update left and top.
317 if(this._delta)
318 {
319 ElementsMediator.setProperties(this.application.ninja.selectedElements,
313 { "left": newLeft, "top": newTop, "width": newWidth, "height": newHeight }, 320 { "left": newLeft, "top": newTop, "width": newWidth, "height": newHeight },
314 "Change", 321 "Change",
315 "selectionTool", 322 "selectionTool",
316 { "left" : previousLeft, "top" : previousTop, "width": previousWidth, "height": previousHeight} 323 { "left" : previousLeft, "top" : previousTop, "width": previousWidth, "height": previousHeight}
317 ); 324 );
325 }
326 else
327 {
328 ElementsMediator.setProperties(this.application.ninja.selectedElements,
329 { "left": newLeft, "top": newTop },
330 "Change",
331 "selectionTool",
332 { "left" : previousLeft, "top" : previousTop }
333 );
334 }
318 } 335 }
319 // Save previous value for undo/redo 336 // Save previous value for undo/redo
320 this._undoArray = []; 337 this._undoArray = [];
diff --git a/js/tools/Translate3DToolBase.js b/js/tools/Translate3DToolBase.js
index cbf76830..3d9191da 100755
--- a/js/tools/Translate3DToolBase.js
+++ b/js/tools/Translate3DToolBase.js
@@ -85,7 +85,6 @@ exports.Translate3DToolBase = Montage.create(ModifierToolBase,
85 { 85 {
86 // Reset to the identity matrix but retain the rotation values 86 // Reset to the identity matrix but retain the rotation values
87 item = this._targets[i]; 87 item = this._targets[i];
88 elt = item.elt;
89 mat = item.mat.slice(0); 88 mat = item.mat.slice(0);
90 mat[12] = 0; 89 mat[12] = 0;
91 mat[13] = 0; 90 mat[13] = 0;