comparison lisp/mouse.el @ 5473:ac37a5f7e5be

Merge with trunk.
author Mats Lidell <matsl@xemacs.org>
date Thu, 17 Mar 2011 23:42:59 +0100
parents 308d34e9f07d 4141aeddc55b
children 3bc58dc9d688
comparison
equal deleted inserted replaced
5472:e79980ee5efe 5473:ac37a5f7e5be
1768 ;; if the change caused more than two windows to resize 1768 ;; if the change caused more than two windows to resize
1769 ;; (shifting the whole stack right is ugly), or if the 1769 ;; (shifting the whole stack right is ugly), or if the
1770 ;; left window side has slipped (right side cannot be 1770 ;; left window side has slipped (right side cannot be
1771 ;; moved any further to the right, so enlarge-window 1771 ;; moved any further to the right, so enlarge-window
1772 ;; plays bad games with the left edge. 1772 ;; plays bad games with the left edge.
1773 (if (or (/= (count-windows) (length old-edges-all-windows)) 1773 (if (or (not (eql (count-windows)
1774 (length old-edges-all-windows)))
1774 (/= old-left (car (window-pixel-edges window))) 1775 (/= old-left (car (window-pixel-edges window)))
1775 ;; This check is very hairy. We allow any number 1776 ;; This check is very hairy. We allow any number
1776 ;; of left edges to change, but only to the same 1777 ;; of left edges to change, but only to the same
1777 ;; new value. Similar procedure is for the right edges. 1778 ;; new value. Similar procedure is for the right edges.
1778 (let ((all-that-bad nil) 1779 (let ((all-that-bad nil)
1779 (new-left-ok nil) 1780 (new-left-ok nil)
1780 (new-right-ok nil)) 1781 (new-right-ok nil))
1781 (mapcar* (lambda (window old-edges) 1782 (mapc (lambda (window old-edges)
1782 (let ((new (car (window-pixel-edges window)))) 1783 (let ((new
1783 (if (/= new (car old-edges)) 1784 (car (window-pixel-edges window))))
1784 (if (and new-left-ok 1785 (if (/= new (car old-edges))
1785 (/= new-left-ok new)) 1786 (if (and new-left-ok
1786 (setq all-that-bad t) 1787 (/= new-left-ok new))
1787 (setq new-left-ok new))))) 1788 (setq all-that-bad t)
1788 (window-list) old-edges-all-windows) 1789 (setq new-left-ok new)))))
1789 (mapcar* (lambda (window old-edges) 1790 (window-list) old-edges-all-windows)
1790 (let ((new (caddr (window-pixel-edges window)))) 1791 (mapc (lambda (window old-edges)
1791 (if (/= new (caddr old-edges)) 1792 (let ((new
1792 (if (and new-right-ok 1793 (caddr (window-pixel-edges window))))
1793 (/= new-right-ok new)) 1794 (if (/= new (caddr old-edges))
1794 (setq all-that-bad t) 1795 (if (and new-right-ok
1795 (setq new-right-ok new))))) 1796 (/= new-right-ok new))
1796 (window-list) old-edges-all-windows) 1797 (setq all-that-bad t)
1798 (setq new-right-ok new)))))
1799 (window-list) old-edges-all-windows)
1797 all-that-bad)) 1800 all-that-bad))
1798 (set-window-configuration backup-conf))))))))) 1801 (set-window-configuration backup-conf)))))))))
1799 1802
1800 (setq vertical-divider-map (make-keymap)) 1803 (setq vertical-divider-map (make-keymap))
1801 (define-key vertical-divider-map 'button1 'drag-window-divider) 1804 (define-key vertical-divider-map 'button1 'drag-window-divider)