summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-11-04 14:44:02 -0500
committerJules Laplace <jules@okfoc.us>2014-11-04 14:44:02 -0500
commit00778a168b7314039e95e856f6d41e05d0dbc4e4 (patch)
tree3c4485d42b969ffebc1fef781ab4d2e3f66bc3e5
parent9acdfee187cff9131e1add9e74a0eecb002ed1b5 (diff)
fix resize undo
-rw-r--r--public/assets/javascripts/app.js5
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/image.js1
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/text.js2
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/video.js1
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/undo.js9
-rw-r--r--public/assets/javascripts/rectangles/models/vec2.js6
-rw-r--r--public/assets/javascripts/vendor/polyfill.js5
7 files changed, 20 insertions, 9 deletions
diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js
index 5e339ea..0488f11 100644
--- a/public/assets/javascripts/app.js
+++ b/public/assets/javascripts/app.js
@@ -1,9 +1,4 @@
-var is_iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i));
-var is_ipad = (navigator.userAgent.match(/iPad/i));
-var is_android = (navigator.userAgent.match(/Android/i))
-var is_mobile = is_iphone || is_ipad || is_android;
-
if (is_mobile) {
// window.location.href = "mobile.html"
$("html").addClass("mobile");
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/image.js b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
index 10fc917..848f8d4 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/image.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
@@ -55,6 +55,7 @@ Scenery.types.image = Scenery.types.base.extend(function(base){
this.mx.move(data.position)
this.mx.ops.width = data.dimensions.a
this.mx.ops.height = data.dimensions.b
+ this.dimensions.deserialize(data.dimensions)
},
}
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/text.js b/public/assets/javascripts/rectangles/engine/scenery/types/text.js
index a10a332..dd1385f 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/text.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/text.js
@@ -68,7 +68,9 @@ Scenery.types.text = Scenery.types.base.extend(function(base){
this.mx.move(data.position)
this.mx.ops.width = data.dimensions.a
this.mx.ops.height = data.dimensions.b
+ this.dimensions.deserialize(data.dimensions)
},
+
}
return exports
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/video.js b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
index a669a90..d83cc63 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/video.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
@@ -117,6 +117,7 @@ Scenery.types.video = Scenery.types.base.extend(function(base){
this.mx.move(data.position)
this.mx.ops.width = data.dimensions.a
this.mx.ops.height = data.dimensions.b
+ this.dimensions.deserialize(data.dimensions)
},
}
diff --git a/public/assets/javascripts/rectangles/engine/scenery/undo.js b/public/assets/javascripts/rectangles/engine/scenery/undo.js
index 998f7c6..6ad9e0d 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/undo.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/undo.js
@@ -21,9 +21,10 @@
type: "update-scenery",
undo: function(state){
var scenery = Scenery.find(state.id)
+ var wall = Walls.find( state.wall_id )
scenery.deserialize(state)
- scenery.set_wall(Walls.find( state.wall_id ))
+ scenery.set_wall({ wall: wall })
if (editor.permissions.resize) {
Scenery.resize.show(scenery)
@@ -34,13 +35,15 @@
},
redo: function(state){
var scenery = Scenery.find(state.id)
+ var wall = Walls.find( state.wall_id )
+
scenery.deserialize(state)
- scenery.set_wall(Walls.find( state.wall_id ))
+ scenery.set_wall({ wall: wall })
if (editor.permissions.resize) {
Scenery.resize.show(scenery)
- Scenery.resize.rotate_dots()
Scenery.resize.move_dots()
+ Scenery.resize.rotate_dots()
}
// TODO: watch individual scenery object here
diff --git a/public/assets/javascripts/rectangles/models/vec2.js b/public/assets/javascripts/rectangles/models/vec2.js
index f28df54..14d0e6b 100644
--- a/public/assets/javascripts/rectangles/models/vec2.js
+++ b/public/assets/javascripts/rectangles/models/vec2.js
@@ -206,7 +206,11 @@
return "[" + this.a + " " + this.b + "]"
}
vec2.prototype.serialize = function(){
- return [ ~~this.a, ~~this.b ]
+ return [ round(this.a), round(this.b) ]
+ }
+ vec2.prototype.deserialize = function(data){
+ this.a = data[0]
+ this.b = data[1]
}
vec2.prototype.quantize = function(n){
n = n || 10
diff --git a/public/assets/javascripts/vendor/polyfill.js b/public/assets/javascripts/vendor/polyfill.js
index f97e438..8e4b9dc 100644
--- a/public/assets/javascripts/vendor/polyfill.js
+++ b/public/assets/javascripts/vendor/polyfill.js
@@ -52,6 +52,11 @@ function has3d(){
return browser;
})( navigator.userAgent );
+// Naive useragent detection pattern
+var is_iphone = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i));
+var is_ipad = (navigator.userAgent.match(/iPad/i));
+var is_android = (navigator.userAgent.match(/Android/i))
+var is_mobile = is_iphone || is_ipad || is_android;
// rAF shim
(function() {