aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xjs/document/document-html.js2
-rwxr-xr-xjs/helper-classes/3D/draw-utils.js41
-rwxr-xr-xjs/stage/stage.reel/stage.js33
3 files changed, 66 insertions, 10 deletions
diff --git a/js/document/document-html.js b/js/document/document-html.js
index 87c776d5..a26b74d5 100755
--- a/js/document/document-html.js
+++ b/js/document/document-html.js
@@ -41,7 +41,7 @@ exports.HtmlDocument = Montage.create(Component, {
41 //////////////////////////////////////////////////////////////////// 41 ////////////////////////////////////////////////////////////////////
42 // 42 //
43 exclusionList: { 43 exclusionList: {
44 value: ["HTML", "BODY"] //TODO: Update to correct list 44 value: ["HTML", "BODY", "NINJA-CONTENT"] //TODO: Update to correct list
45 }, 45 },
46 //////////////////////////////////////////////////////////////////// 46 ////////////////////////////////////////////////////////////////////
47 // 47 //
diff --git a/js/helper-classes/3D/draw-utils.js b/js/helper-classes/3D/draw-utils.js
index b53ac4ad..b268b8f0 100755
--- a/js/helper-classes/3D/draw-utils.js
+++ b/js/helper-classes/3D/draw-utils.js
@@ -245,16 +245,45 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, {
245 } 245 }
246 var els = event.detail.data.els; 246 var els = event.detail.data.els;
247 if(els && this._shouldUpdatePlanes(event.detail.data.prop)) { 247 if(els && this._shouldUpdatePlanes(event.detail.data.prop)) {
248 var len = els.length; 248 var len = els.length,
249 stage = this.application.ninja.stage,
250 minLeft = stage.userPaddingLeft,
251 minTop = stage.userPaddingTop,
252 docLeft = stage.documentOffsetLeft,
253 docTop = stage.documentOffsetTop,
254 l,
255 t,
256 plane,
257 changed = false;
249 for(var i=0; i < len; i++) { 258 for(var i=0; i < len; i++) {
250 if(els[i].elementModel.props3D.elementPlane) { 259 plane = els[i].elementModel.props3D.elementPlane;
251 els[i].elementModel.props3D.elementPlane.init(); 260 if(plane) {
261 plane.init();
262 l = plane._rect.m_left - docLeft;
263 t = plane._rect.m_top - docTop;
264 if(l < minLeft) {
265 minLeft = l;
266 }
267 if(t < minTop) {
268 minTop = t;
269 }
252 } 270 }
253 } 271 }
254 272
255 this.application.ninja.stage.layout.draw(); 273 if(minLeft !== stage.userPaddingLeft) {
256 this.drawWorkingPlane(); 274 stage.userPaddingLeft = minLeft;
257 this.draw3DCompass(); 275 changed = true;
276 }
277 if(minTop !== stage.userPaddingTop) {
278 stage.userPaddingTop = minTop;
279 changed = true;
280 }
281
282 if(!changed) {
283 stage.layout.draw();
284 this.drawWorkingPlane();
285 this.draw3DCompass();
286 }
258 } 287 }
259 } 288 }
260 }, 289 },
diff --git a/js/stage/stage.reel/stage.js b/js/stage/stage.reel/stage.js
index 125155d8..854b5a2d 100755
--- a/js/stage/stage.reel/stage.js
+++ b/js/stage/stage.reel/stage.js
@@ -187,6 +187,33 @@ exports.Stage = Montage.create(Component, {
187 enumerable : false 187 enumerable : false
188 }, 188 },
189 189
190 _userPaddingLeft: { value: 0 },
191 _userPaddingTop: { value: 0 },
192
193 userPaddingLeft: {
194 get: function() { return this._userPaddingLeft; },
195 set: function(value) {
196 this._userPaddingLeft = value;
197 this._documentOffsetLeft = -value;
198 this.application.ninja.stylesController.setElementStyle(this._documentRoot.ownerDocument.getElementsByTagName("HTML")[0],
199 "padding-left", -value + "px", true);
200 this.userContentLeft = this._documentOffsetLeft;
201 this.updatedStage = true;
202 }
203 },
204
205 userPaddingTop: {
206 get: function() { return this._userPaddingTop; },
207 set: function(value) {
208 this._userPaddingTop = value;
209 this._documentOffsetTop = -value;
210 this.application.ninja.stylesController.setElementStyle(this._documentRoot.ownerDocument.getElementsByTagName("HTML")[0],
211 "padding-top", -value + "px", true);
212 this.userContentTop = this._documentOffsetTop;
213 this.updatedStage = true;
214 }
215 },
216
190 willDraw: { 217 willDraw: {
191 value: function() { 218 value: function() {
192 if(this.resizeCanvases) { 219 if(this.resizeCanvases) {
@@ -490,8 +517,8 @@ exports.Stage = Montage.create(Component, {
490 this._scrollLeft = this.application.ninja.currentDocument.model.views.design.document.body.scrollLeft; 517 this._scrollLeft = this.application.ninja.currentDocument.model.views.design.document.body.scrollLeft;
491 this._scrollTop = this.application.ninja.currentDocument.model.views.design.document.body.scrollTop; 518 this._scrollTop = this.application.ninja.currentDocument.model.views.design.document.body.scrollTop;
492 519
493 this.userContentLeft = -this._scrollLeft; 520 this.userContentLeft = this._documentOffsetLeft - this._scrollLeft;
494 this.userContentTop = -this._scrollTop; 521 this.userContentTop = this._documentOffsetTop - this._scrollTop;
495 522
496 // TODO - scroll events are not dependable. We may need to use a timer to simulate 523 // TODO - scroll events are not dependable. We may need to use a timer to simulate
497 // scrollBegin and scrollEnd. For now, the Pan Tool will keep track of the stage's scroll values 524 // scrollBegin and scrollEnd. For now, the Pan Tool will keep track of the stage's scroll values
@@ -582,7 +609,7 @@ exports.Stage = Montage.create(Component, {
582 var point, element, 609 var point, element,
583 docView = this.application.ninja.currentDocument.model.views.design; 610 docView = this.application.ninja.currentDocument.model.views.design;
584 611
585 point = webkitConvertPointFromPageToNode(this.canvas, new WebKitPoint(position.pageX - docView.iframe.contentWindow.pageXOffset, position.pageY - docView.iframe.contentWindow.pageYOffset)); 612 point = webkitConvertPointFromPageToNode(this.canvas, new WebKitPoint(position.pageX - docView.iframe.contentWindow.pageXOffset + this.documentOffsetLeft, position.pageY - docView.iframe.contentWindow.pageYOffset + this.documentOffsetTop));
586 element = this.application.ninja.currentDocument.model.views.design.getElementFromPoint(point.x - this.userContentLeft,point.y - this.userContentTop); 613 element = this.application.ninja.currentDocument.model.views.design.getElementFromPoint(point.x - this.userContentLeft,point.y - this.userContentTop);
587 614
588 if(!element) debugger; 615 if(!element) debugger;