anchor.diff:  			   (fourth mods))
     surface)
   
  -#|
  -(defmethod activate ((surface xdg-surface) time)
  -  (let ((array (foreign-alloc '(:struct wl_array))))
  -    (wl-array-init array)
  -    (setf (mem-aref (wl-array-add array 4) :int32) 4)
  -    (xdg-surface-send-configure (->xdg-surface surface) 0 0 array time)
  -    (wl-array-release array)
  -    (foreign-free array)))
  -|#
  -
   (defmethod deactivate ((surface (eql nil)))
     )
   
  
positive.code:    (effects :accessor effects :initarg :effects :initform nil)
     (subsurfaces :accessor subsurfaces :initarg :subsurfaces :initform nil)))
  
  #|
  (defun remove-client (client-pointer)
    (let ((client (get-client client-pointer)))
      (loop :for resource :in (resource client)
         (r
      (setf (resources client) nil)
      (setf *clients* (remove-if (lambda (client)
  				 (and (pointerp (waylisp:->client client)) (pointer-eq (waylisp:->client client) client-pointer)))
  			       *clients*))))
  |#
  
  (defun find-region (->region client)
    (find-if (lambda (region)
  	     (and (pointerp (->resource region))
  		  (pointer-eq (->resource region) ->region)))
  	   (regions client)))
  
  #|
  (defclass wl-surface ()
    ((->surface :accessor ->surface :initarg :->surface :initform nil)
     (->buffer :accessor ->buffer :initarg :->buffer :initform nil)
     (client :accessor client :initarg :client :initform nil)
     (width :accessor width :initarg :width :initform 0)
     (height :accessor height :initarg :height :initform 0)
     (texture :accessor texture :initarg texture :initform nil)
     (->frame-callback :accessor ->frame-callback :initarg :->frame-callback :initform nil)
     (input-region :accessor input-region :initarg :input-region :initform nil)
     (opaque-region :accessor opaque-region :initarg :opaque-region :initform nil)
     (subsurfaces :accessor subsurfaces :initarg :subsurfaces :initform nil)))
  |#
  
  #|
  (defclass xdg-surface (wl-surface)
    ((->xdg-surface :accessor ->xdg-surface :initarg :->xdg-surface :initform nil)))
  
  (defun xdg-surface? (surface)
    (eql (class-of surface) (find-class 'xdg-surface)))
  |#
  
  (defmacro with-wl-array (array &body body)
    `(let ((,array (foreign-alloc '(:struct wl_array))))
       (wl-array-init ,array)
  
negative.code:    effects
     opacity
     operation
     rects
     ->client
     ->pointer
     ->keyboard
     client
     input-region
     opaque-region
     wl-surface
  