summaryrefslogtreecommitdiff
path: root/lisp/mouse.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/mouse.el')
-rw-r--r--lisp/mouse.el22
1 files changed, 18 insertions, 4 deletions
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 7994db2a92d..6285624f03a 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -107,14 +107,28 @@ This command must be bound to a mouse click."
(interactive "@e")
(let ((start (event-start click)))
(select-window (posn-window start))
- (split-window-vertically (1+ (cdr (posn-col-row click))))))
+ (let ((new-height (1+ (cdr (posn-col-row (event-end click)))))
+ (first-line window-min-height)
+ (last-line (- (window-height) window-min-height)))
+ (if (< last-line first-line)
+ (error "window too short to split")
+ (split-window-vertically
+ (min (max new-height first-line) last-line))))))
(defun mouse-split-window-horizontally (click)
"Select Emacs window mouse is on, then split it horizontally in half.
The window is split at the column clicked on.
This command must be bound to a mouse click."
(interactive "@e")
- (split-window-horizontally (1+ (car (posn-col-row (event-end click))))))
+ (let ((start (event-start click)))
+ (select-window (posn-window start))
+ (let ((new-width (1+ (car (posn-col-row (event-end click)))))
+ (first-col window-min-width)
+ (last-col (- (window-width) window-min-width)))
+ (if (< last-col first-col)
+ (error "window too narrow to split")
+ (split-window-horizontally
+ (min (max new-width first-col) last-col))))))
(defun mouse-set-point (click)
"Move point to the position clicked on with the mouse.
@@ -240,7 +254,7 @@ and selects that window."
(select-window window)
(switch-to-buffer buf))))))
-;;; These need to be rewritten for the new scrollbar implementation.
+;;; These need to be rewritten for the new scroll bar implementation.
;;;!! ;; Commands for the scroll bar.
;;;!!
@@ -482,7 +496,7 @@ and selects that window."
;;;!! ;;; (define-key doubleclick-test-map mouse-button-left-up 'double-up))
;;;!!
;;;!! ;;
-;;;!! ;; This scrolls while button is depressed. Use preferable in scrollbar.
+;;;!! ;; This scrolls while button is depressed. Use preferable in scroll bar.
;;;!! ;;
;;;!!
;;;!! (defvar scrolled-lines 0)