anchor.diff:      (format t "Surface requested move~%")
       (let* ((surface-ptr (wl-resource-get-user-data resource))
   	   (surface (find-surface surface-ptr *compositor*)))
  -        (setf (moving-surface *compositor*) surface)))
  +      (setf (moving-surface *compositor*) (make-move-op :surface surface
  +							:surface-x (x surface)
  +							:surface-y (y surface)
  +							:pointer-x (pointer-x *compositor*)
  +							:pointer-y (pointer-y *compositor*)))))
   
   ;;  (defcallback resize :void
     ;;  )    
  
positive.code:   
    (defparameter surface-implementation
      (implement-wl-surface
       :commit (callback my-commit)
       :attach (callback my-attach)
       :frame (callback my-frame)
       :set-input-region (callback my-set-input-region)
       :set-opaque-region (callback set-opaque-region)))
    
    (defcallback delete-surface :void
  
negative.code: (defun initialise-wayland ()
    ;; Define callbacks at run time otherwise save-lisp-and-die executable
    ;; doesn't work
    (defcallback commit :void
      ((client-ptr :pointer) (resource :pointer))
      (let* ((client (find-client client-ptr *compositor*))
  	   (->surface (wl-resource-get-user-data resource))
  