anchor.diff:     (button :initarg :button
   	   :reader pointer-event-button)
      (x :initarg :x
  -      :reader pointer-event-x)
  +      :reader pointer-event-native-x)
      (y :initarg :y
  -      :reader pointer-event-y)
  -   ))
  +      :reader pointer-event-native-y)
  +   ))
  +
  +(defmacro get-pointer-position ((sheet event) &body body)
  +  `(multiple-value-bind (x y)
  +       (transform-position (sheet-native-transformation ,sheet) (pointer-event-native-x ,event) (pointer-event-native-y ,event))
  +     ,@body))
  +  
  +(defmethod pointer-event-x ((event pointer-event))
  +  (get-pointer-position ((event-sheet event) event) x))
  +
  +(defmethod pointer-event-y ((event pointer-event))
  +  (get-pointer-position ((event-sheet event) event) y))
  +
   
   (defclass pointer-button-event (pointer-event)
     (
  
positive.code:   ((sheet :initarg :sheet
  	  :reader event-sheet)
     (region :initarg :region
  	   :reader window-event-region)
     ))
  
  (defmethod window-event-native-region ((window-event window-event))
    (window-event-region window-event))
  
  (defmethod window-event-mirrored-sheet ((window-event window-event))
    (sheet-mirror (event-sheet window-event)))
  
  (defclass window-configuration-event (window-event)
    ((x :initarg :x :reader window-configuration-event-x)
     (y :initarg :y :reader window-configuration-event-y)
     (width :initarg :width :reader window-configuration-event-width)
     (height :initarg :height :reader window-configuration-event-height)))
  
  (defclass window-unmap-event (window-event)
    ())
  
negative.code: (defclass pointer-exit-event (pointer-boundary-event)
    (
     ))
  
  
  (defclass pointer-ungrab-event (pointer-exit-event)
    ())
  