           hitTestPalette(point)
         
         if not @ephemeralSelection?
-          # If we haven't clicked on any clickable element, then LASSO SELECT, indicated by (@lassoAnchor?)
-          
-          # If there is already a selection, remove it.
-          if @lassoSegment?
-
-            # First, check to see if the block is floating
-            flag = false
-            for float in @floatingBlocks
-              if float.block is @lassoSegment
-                flag = true
-                break
-
-            # Don't remove the segment if it's floating, because it still needs to hold those blocks together
-            unless flag
-              @lassoSegment.remove()
-
-            @lassoSegment = null
-            @redraw()
-
-          # Set the lasso anchor
-          @lassoAnchor = point
+          if isTouchEvent
+            @touchScrollAnchor = point
+
+          else
+            # If we haven't clicked on any clickable element, then LASSO SELECT, indicated by (@lassoAnchor?)
+            
+            # If there is already a selection, remove it.
+            if @lassoSegment?
+
+              # First, check to see if the block is floating
+              flag = false
+              for float in @floatingBlocks
+                if float.block is @lassoSegment
+                  flag = true
+                  break
+
+              # Don't remove the segment if it's floating, because it still needs to hold those blocks together
+              unless flag
+                @lassoSegment.remove()
+
+              @lassoSegment = null
+              @redraw()
+
+            # Set the lasso anchor
+            @lassoAnchor = point
 
         else if @ephemeralSelection.type is 'socket'
           # If we have clicked on a socket, then TEXT INPUT, indicated by (@isEditingText())

          drag.style.webkitTransform =
            drag.style.mozTransform =
            drag.style.transform = "translate(#{fixedDest.x}px, #{fixedDest.y}px)"
      
      # Bind this mousemove function to mousemove. We need to add some
      # wrapper functions for touchmove, since multitouch works slightly differently

          when event.offsetX? then new draw.Point event.offsetX - PALETTE_WIDTH, event.offsetY + @scrollOffset.y
          when event.layerX then new draw.Point event.layerX - PALETTE_WIDTH, event.layerY + @scrollOffset.y
      
      performNormalMouseDown = (point, isTouchEvent) =>

        # See what we picked up
        @ephemeralSelection = hitTestFloating(point) ?
