Mercurial > hg > digilib
changeset 1351:76b72fa16012
immediate reaction on when dragging and keys x or y are pressed
author | hertzhaft |
---|---|
date | Mon, 09 Feb 2015 10:19:12 +0100 |
parents | 81d5135ceafc |
children | d8271e1e9ce2 |
files | webapp/src/main/webapp/jquery/jquery.digilib.measure.js webapp/src/main/webapp/jquery/jquery.digilib.vector.js |
diffstat | 2 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Mon Feb 09 09:20:28 2015 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Mon Feb 09 10:19:12 2015 +0100 @@ -45,6 +45,8 @@ var geom = null; // convenience variable, set in init() var CSS = ''; + // shape currently being drawn/dragged + var currentShape; // current key state: keystate[event.key] = event var keystate = {}; // shiftPressed = event.shiftKey; @@ -815,6 +817,7 @@ // event handler for positionShape var onPositionShape = function(event, shape) { var data = this; + currentShape = shape; if (keystate['x'] != null) { // change only x-Dimension of mouse pointer manipulatePosition(shape, lockDimension('y')); } @@ -835,6 +838,7 @@ var onChangeShape = function(event, shape) { var data = this; updateInfo(data, shape); + currentShape = null; _debug_shape('onChangeShape', shape); }; @@ -1124,12 +1128,22 @@ var onKeyDown = function(event, data) { var code = event.keyCode; var key = event.key; + keystate[key] = event; // save key state on key // delete selected shapes if (code === 46 || key === 'Delete') { removeSelectedShapes(data); return false; } - keystate[key] = event; // save key state on key + // keys 'x' and 'y': immediate response, lock dimension and redraw shape + if (code === 88 || key === 'x' || + code === 89 || key === 'y') { + if (currentShape == null) { return true }; + var props = currentShape.properties; + var pt = props.screenpos[props.vtx]; // get last recorded mouse position + var eventpos = { pageX: pt.x, pageY: pt.y } + var evt = jQuery.Event("mousemove.dlVertexDrag", eventpos); + $(document).trigger(evt); + } // console.debug('measure: keyDown', code, event.key, keystate); };
--- a/webapp/src/main/webapp/jquery/jquery.digilib.vector.js Mon Feb 09 09:20:28 2015 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.vector.js Mon Feb 09 10:19:12 2015 +0100 @@ -470,7 +470,7 @@ delete shape.$elem; } }; - + /** * return a vertexDragHandler function. * @@ -508,9 +508,9 @@ var dragMove = function (evt) { // dragging var pt = geom.position(evt); + pt.clipTo(imgRect); shape.properties.screenpos[vtx] = pt; $(data).trigger('positionShape', shape); - pt.clipTo(imgRect); // move handle $handle.attr({'x': pt.x-hs/2, 'y': pt.y-hs/2}); // update shape SVG element