Function: x-dnd-intersect-rectangles
x-dnd-intersect-rectangles is a byte-compiled function defined in
x-dnd.el.gz.
Signature
(x-dnd-intersect-rectangles R1 R2)
Documentation
Return the intersection of R1 and R2, both rectangles.
Source Code
;; Defined in /usr/src/emacs/lisp/x-dnd.el.gz
(defun x-dnd-intersect-rectangles (r1 r2)
"Return the intersection of R1 and R2, both rectangles."
(let ((left (if (< (car r1) (car r2)) r1 r2))
(right (if (> (car r2) (car r1)) r2 r1))
(upper (if (< (cadr r1) (cadr r2)) r1 r2))
(lower (if (> (cadr r2) (cadr r1)) r2 r1))
(result (list 0 0 0 0)))
(when (<= (car right) (+ (car left) (nth 2 left)))
(setcar result (car right))
(setcar (nthcdr 2 result)
(- (min (+ (car left) (nth 2 left))
(+ (car right) (nth 2 right)))
(car result)))
(when (<= (cadr lower) (+ (cadr upper) (nth 3 upper)))
(setcar (cdr result) (cadr lower))
(setcar (nthcdr 3 result)
(- (min (+ (cadr lower) (nth 3 lower))
(+ (cadr upper) (nth 3 upper)))
(cadr result)))))
result))