anchor.diff:  				  (mods-group *compositor*)))))
   
   (defmethod first-commit ((mode default-mode) surface)
  -  (start-animation (animation
  -		    :target surface
  -		    :property 'opacity
  -		    :from 0.0 :to 1.0
  -		    :duration 250
  -		    :easing-fn 'easing:linear)))
  +  (let ((animation (sequential-animation (lambda ()
  +					   (setf (origin-x surface) 0.0)
  +					   (setf (origin-y surface) 0.0))
  +					 (animation :target surface
  +						    :property 'scale-x
  +						    :easing-fn 'easing:out-exp
  +						    :from 0
  +						    :to 1.0
  +						    :duration 500)
  +					 (animation :target surface
  +						    :property 'scale-y
  +						    :easing-fn 'easing:out-exp
  +						    :to 1.0
  +						    :duration 500))))
  +    (setf (origin-x surface) (/ (width surface) 2))
  +    (setf (origin-y surface) (/ (height surface) 2))
  +    (setf (scale-y surface) (/ 6 (height surface)))
  +    (start-animation animation)))
  +
  +(defun-g default-mode-vertex-shader ((vert g-pt) &uniform (ortho :mat4) (origin :mat4) (origin-inverse :mat4) (surface-scale :mat4) (surface-translate :mat4))
  +  (values (* ortho surface-translate origin-inverse surface-scale origin (v! (pos vert) 1))
  +	  (:smooth (tex vert))))
   
   (def-g-> default-pipeline ()
  -  #'default-vertex-shader #'default-fragment-shader)
  +  #'default-mode-vertex-shader #'default-fragment-shader)
   
   (defmethod render ((mode default-mode))
     (apply #'gl:clear-color (clear-color mode))
  
positive.code: 				state)))))
  
  (defmethod keyboard-handler ((mode default-mode) time key state)
  
    (when (and (= (mods-depressed *compositor*) 4) (= state 1) (= key 16))
      (sb-ext:exit))
    
    ;; Control tab
    (when (and (= (mods-depressed *compositor*) 4) (= state 1) (= key 15))
  
negative.code:   (when (and (= button #x110) (= state 1) (= 4 (mods-depressed *compositor*)))
      (let ((surface (surface-under-pointer (pointer-x *compositor*) (pointer-y *compositor*) *compositor*)))
        (when surface
  	(setf (moving-surface *compositor*) ;;surface))))
  	      (make-move-op :surface surface
  			    :surface-x (x surface)
  			    :surface-y (y surface)
  			    :pointer-x (pointer-x *compositor*)
  			    :pointer-y (pointer-y *compositor*))))))
  	      
    ;; stop drag
    (when (and (moving-surface *compositor*) (= button #x110) (= state 0))
      (setf (moving-surface *compositor*) nil))
  