# HG changeset patch # User Eli Zaretskii # Date 1136029594 0 # Node ID f223df02d351f155277577cf34023e6e80090881 # Parent ba74aacb654c5385cdb0733e6eaa2688c19f3f03 (mouse-drag-window-above): Verify that the found window overlaps with the given window in the horizontal dimension. diff -r ba74aacb654c -r f223df02d351 lisp/mouse.el --- a/lisp/mouse.el Sat Dec 31 11:27:23 2005 +0000 +++ b/lisp/mouse.el Sat Dec 31 11:46:34 2005 +0000 @@ -355,14 +355,21 @@ (defun mouse-drag-window-above (window) "Return the (or a) window directly above WINDOW. That means one whose bottom edge is at the same height as WINDOW's top edge." - (let ((top (nth 1 (window-edges window))) + (let ((start-top (nth 1 (window-edges window))) + (start-left (nth 0 (window-edges window))) + (start-right (nth 2 (window-edges window))) (start-window window) above-window) (setq window (previous-window window 0)) (while (and (not above-window) (not (eq window start-window))) - (if (= (+ (window-height window) (nth 1 (window-edges window))) - top) - (setq above-window window)) + (let ((left (nth 0 (window-edges window))) + (right (nth 2 (window-edges window)))) + (when (and (= (+ (window-height window) (nth 1 (window-edges window))) + start-top) + (or (and (<= left start-left) (<= start-right right)) + (and (<= start-left left) (<= left start-right)) + (and (<= start-left right) (<= right start-right)))) + (setq above-window window))) (setq window (previous-window window))) above-window))