diff --git a/editor/svg-editor.css b/editor/svg-editor.css index 38bef779..fb3b9339 100644 --- a/editor/svg-editor.css +++ b/editor/svg-editor.css @@ -32,6 +32,7 @@ body { width: 640px; height: 480px; -apple-dashboard-region:dashboard-region(control rectangle 0px 0px 0px 0px); /* for widget regions that shouldn't react to dragging */ + position: relative; } #svg_editor div#palette_holder { diff --git a/editor/svg-editor.js b/editor/svg-editor.js index a1d415f9..aadb5bd8 100644 --- a/editor/svg-editor.js +++ b/editor/svg-editor.js @@ -1226,6 +1226,19 @@ function svg_edit_setup() { $('#svgcanvas').css( { 'width': w, 'height': h } ); $('#canvas_width').val(w); $('#canvas_height').val(h); + + // this centers the canvas in the workarea if it's small enough + var wa = {w: parseInt($('#workarea').css('width')), + h: parseInt($('#workarea').css('height'))}; + var ca = {w: parseInt($('#svgcanvas').css('width')), + h: parseInt($('#svgcanvas').css('height'))}; + if (wa.w > ca.w) { + $('#svgcanvas').css({'left': (wa.w-ca.w)/2}); + } + if (wa.h > ca.h) { + $('#svgcanvas').css({'top': (wa.h-ca.h)/2}); + } + if(center) { var w_area = $('#workarea'); var scroll_y = h/2 - w_area.height()/2; @@ -1269,6 +1282,9 @@ function svg_edit_setup() { } } + // set starting resolution (centers canvas) + setResolution(640,480); + return svgCanvas; }; diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index c390aaf4..dc606b65 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -1383,8 +1383,9 @@ function BatchCommand(text) { // and do nothing else var mouseDown = function(evt) { - var mouse_x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft; - var mouse_y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop; + console.dir(container); + var mouse_x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft - container.offsetLeft; + var mouse_y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop - container.offsetTop; evt.preventDefault(); @@ -1670,8 +1671,8 @@ function BatchCommand(text) { { if (!started) return; var selected = selectedElements[0]; - var mouse_x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft; - var mouse_y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop; + var mouse_x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft - container.offsetLeft; + var mouse_y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop - container.offsetTop; var shape = svgdoc.getElementById(getId()); x = mouse_x / current_zoom; @@ -2231,8 +2232,8 @@ function BatchCommand(text) { justSelected = null; if (!started) return; - var mouse_x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft; - var mouse_y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop; + var mouse_x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft - container.offsetLeft; + var mouse_y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop - container.offsetTop; var x = mouse_x / current_zoom; var y = mouse_y / current_zoom;