diff options
Diffstat (limited to 'js/tools')
-rwxr-xr-x | js/tools/Rotate3DToolBase.js | 11 | ||||
-rwxr-xr-x | js/tools/SelectionTool.js | 19 | ||||
-rwxr-xr-x | js/tools/Translate3DToolBase.js | 1 |
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; |