diff --git a/editor/svg-editor.html b/editor/svg-editor.html index 3715e52d..e9b2dda3 100644 --- a/editor/svg-editor.html +++ b/editor/svg-editor.html @@ -38,9 +38,9 @@
| - Delete - Top - Bottom + Delete + Top + Bottom
diff --git a/editor/svg-editor.js b/editor/svg-editor.js index 54f26458..09fa1cf8 100644 --- a/editor/svg-editor.js +++ b/editor/svg-editor.js @@ -37,7 +37,7 @@ function svg_edit_setup() { // called when any element has changed var elementChanged = function(window,elem) { - // if the element that changed was teh selected element, we + // if the element that changed was the selected element, we // should update the contextual panel with potentially new // positional/sizing information (we DON'T want to update the // toolbar here as that creates an infinite loop) @@ -273,6 +273,12 @@ function svg_edit_setup() { } } + var moveSelected = function(dx,dy) { + if (selectedElement != null) { + svgCanvas.moveSelectedElement(dx,dy); + } + } + var clickText = function(){ toolButtonClick('#tool_text'); svgCanvas.setMode('text'); @@ -333,9 +339,14 @@ function svg_edit_setup() { $(document).bind('keydown', {combi:'6', disableInInput: true}, clickText); $(document).bind('keydown', {combi:'N', disableInInput: true}, clickClear); $(document).bind('keydown', {combi:'S', disableInInput: true}, clickSave); - $(document).bind('keydown', {combi:'del', disableInInput: true}, deleteSelected); - $(document).bind('keydown', {combi:'pageup', disableInInput: true}, moveToTopSelected); - $(document).bind('keydown', {combi:'pagedown', disableInInput: true}, moveToBottomSelected); + $(document).bind('keydown', {combi:'del', disableInInput: true}, function(evt){deleteSelected();evt.preventDefault();}); + $(document).bind('keydown', {combi:'backspace', disableInInput: true}, function(evt){deleteSelected();evt.preventDefault();}); + $(document).bind('keydown', {combi:'shift+up', disableInInput: true}, moveToTopSelected); + $(document).bind('keydown', {combi:'shift+down', disableInInput: true}, moveToBottomSelected); + $(document).bind('keydown', {combi:'up', disableInInput: true}, function(evt){moveSelected(0,-1);evt.preventDefault();}); + $(document).bind('keydown', {combi:'down', disableInInput: true}, function(evt){moveSelected(0,1);evt.preventDefault();}); + $(document).bind('keydown', {combi:'left', disableInInput: true}, function(evt){moveSelected(-1,0);evt.preventDefault();}); + $(document).bind('keydown', {combi:'right', disableInInput: true}, function(evt){moveSelected(1,0);evt.preventDefault();}); var colorPicker = function(elem) { $('.tools_flyout').hide(); diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index a8b83f8c..f4a85ea5 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -973,6 +973,18 @@ function SvgCanvas(c) t.parentNode.insertBefore(t, t.parentNode.firstChild); } } + + this.moveSelectedElement = function(dx,dy) { + if (selected != null) { + // TODO: move... + selectedBBox = selected.getBBox(); + selectedBBox.x += dx; + selectedBBox.y += dy; + + recalculateSelectedDimensions(); + recalculateSelectedOutline(); + } + } }