From 6f5a5f1030eb6c81240a7ef4fe267c2485529c34 Mon Sep 17 00:00:00 2001 From: Jeff Schiller Date: Mon, 28 Sep 2009 20:14:18 +0000 Subject: [PATCH] Make canvas relatively positioned in workarea, centered in the workarea if small enough git-svn-id: http://svg-edit.googlecode.com/svn/trunk@722 eee81c28-f429-11dd-99c0-75d572ba1ddd --- editor/svg-editor.css | 1 + editor/svg-editor.js | 16 ++++++++++++++++ editor/svgcanvas.js | 13 +++++++------ 3 files changed, 24 insertions(+), 6 deletions(-) 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;