anchor.diff:                                                :drawable drawable)))
                 (create-picture-from-drawable pixmap)))))
   
  +(declaim (inline simple-round))
  +(defun simple-round (n)
  +  (if (minusp n)
  +      (truncate (- n 0.5))
  +      (truncate (+ n 0.5))))
  +
   (defun render-scroll-sheet (sheet x y dx dy update-fn)
     (let ((parent (slot-value sheet 'climi::parent)))
       (if (null parent)
  
positive.code:     (multiple-value-bind (old-x old-y)
          (transform-position transform 0 0)
        ;;
        (let ((dx (- (truncate (+ x 0.5)) (truncate (+ old-x 0.5))))
              (dy (- (truncate (+ y 0.5)) (truncate (+ old-y 0.5)))))
          ;;
          (unless (and (zerop dx) (zerop dy))
            ;;
  
negative.code:             ;;
              (render-scroll-sheet sheet x y dx dy #'update-transform)))))))
  
  (defmethod (setf sheet-transformation) (transformation (sheet clx-pane-mixin))
    ;; Only translation transforms are supported for sheets. Let's just
    ;; ensure that this is the case.
    (unless (translation-transformation-p transformation)
      (error "Attempt to set sheet transformation to a non-translation transformation"))
    (multiple-value-bind (x y)
        (transform-position transformation 0 0)
      (call-next-method (make-translation-transformation (simple-round x) (simple-round y)) sheet)))
  
  (defmethod resize-sheet :before ((sheet clx-pane-mixin) width height)
    (with-sheet-medium (medium sheet)
      (with-clx-graphics () medium
  