Fix reset() to properly reset EVERYTHING.
authorMichael Jumper <zhangmaike@users.sourceforge.net>
Mon, 12 Mar 2012 04:30:00 +0000 (21:30 -0700)
committerMichael Jumper <zhangmaike@users.sourceforge.net>
Mon, 12 Mar 2012 04:30:00 +0000 (21:30 -0700)
src/main/resources/layer.js

index f78e519..c7754c3 100644 (file)
@@ -72,6 +72,7 @@ Guacamole.Layer = function(width, height) {
      * @private
      */
     var displayContext = display.getContext("2d");
      * @private
      */
     var displayContext = display.getContext("2d");
+    displayContext.save();
 
     /**
      * The queue of all pending Tasks. Tasks will be run in order, with new
 
     /**
      * The queue of all pending Tasks. Tasks will be run in order, with new
@@ -89,6 +90,10 @@ Guacamole.Layer = function(width, height) {
 
     /**
      * The number of states on the state stack.
 
     /**
      * The number of states on the state stack.
+     * 
+     * Note that there will ALWAYS be one element on the stack, but that
+     * element is not exposed. It is only used to reset the layer to its
+     * initial state.
      */
     var stackSize = 0;
 
      */
     var stackSize = 0;
 
@@ -788,16 +793,13 @@ Guacamole.Layer = function(width, height) {
 
             // Clear stack
             while (stackSize > 0) {
 
             // Clear stack
             while (stackSize > 0) {
-                displaycontext.restore();
+                displayContext.restore();
                 stackSize--;
             }
 
                 stackSize--;
             }
 
-            // Clear transform
-            displayContext.setTransform(
-                1, 0, 0,
-                0, 1, 0
-              /*0, 0, 1*/
-            );
+            // Restore to initial state
+            displayContext.restore();
+            displayContext.save();
 
             // Clear path
             displayContext.beginPath();
 
             // Clear path
             displayContext.beginPath();