Mercurial > emacs
changeset 67954:f223df02d351
(mouse-drag-window-above): Verify that the found window overlaps with the
given window in the horizontal dimension.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 31 Dec 2005 11:46:34 +0000 |
parents | ba74aacb654c |
children | 6f397fdf1671 |
files | lisp/mouse.el |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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))