diff options
author | Kris Borchers <kris.borchers@gmail.com> | 2013-11-08 22:45:36 -0600 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2014-01-15 04:37:32 -0500 |
commit | 20c1648f68660b267eec302d43a7b1014cda6e1a (patch) | |
tree | 8f22bf5c458d182543996a7983bddfb7db3d9616 | |
parent | 7741c9f678088a129c1782f4e7f061bc12a41279 (diff) | |
download | jquery-ui-20c1648f68660b267eec302d43a7b1014cda6e1a.tar.gz jquery-ui-20c1648f68660b267eec302d43a7b1014cda6e1a.zip |
Resizable: Only resize/reposition if size is greater than specified grid
Fixes #9611
Closes gh-1132
-rw-r--r-- | tests/unit/resizable/resizable_options.js | 23 | ||||
-rw-r--r-- | ui/jquery.ui.resizable.js | 18 |
2 files changed, 37 insertions, 4 deletions
diff --git a/tests/unit/resizable/resizable_options.js b/tests/unit/resizable/resizable_options.js index 8da189d96..34fef47f0 100644 --- a/tests/unit/resizable/resizable_options.js +++ b/tests/unit/resizable/resizable_options.js @@ -224,6 +224,29 @@ test("grid (wrapped)", function() { equal( target.height(), 120, "compare height"); }); +test( "grid - Resizable: can be moved when grid option is set (#9611)", function() { + expect( 6 ); + + var oldPosition, + handle = ".ui-resizable-nw", + target = $( "#resizable1" ).resizable({ + handles: "all", + grid: 50 + }); + + TestHelpers.resizable.drag( handle, 50, 50 ); + equal( target.width(), 50, "compare width" ); + equal( target.height(), 50, "compare height" ); + + oldPosition = target.position(); + + TestHelpers.resizable.drag( handle, 50, 50 ); + equal( target.width(), 50, "compare width" ); + equal( target.height(), 50, "compare height" ); + equal( target.position().top, oldPosition.top, "compare top" ); + equal( target.position().left, oldPosition.left, "compare left" ); +}); + test("ui-resizable-se { handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 100, maxHeight: 100 }", function() { expect(4); diff --git a/ui/jquery.ui.resizable.js b/ui/jquery.ui.resizable.js index 3470e88eb..636cf4123 100644 --- a/ui/jquery.ui.resizable.js +++ b/ui/jquery.ui.resizable.js @@ -1002,10 +1002,20 @@ $.ui.plugin.add("resizable", "grid", { that.size.height = newHeight; that.position.left = op.left - ox; } else { - that.size.width = newWidth; - that.size.height = newHeight; - that.position.top = op.top - oy; - that.position.left = op.left - ox; + if ( newHeight - gridY > 0 ) { + that.size.height = newHeight; + that.position.top = op.top - oy; + } else { + that.size.height = gridY; + that.position.top = op.top + os.height - gridY; + } + if ( newWidth - gridX > 0 ) { + that.size.width = newWidth; + that.position.left = op.left - ox; + } else { + that.size.width = gridX; + that.position.left = op.left + os.width - gridX; + } } } |