Function: mouse-drag-mode-line
mouse-drag-mode-line is an interactive and byte-compiled function
defined in hmouse-drv.el.
Signature
(mouse-drag-mode-line START-EVENT)
Documentation
Change the height of a window by dragging on its mode line.
START-EVENT is the starting mouse event of the drag action.
If the drag happens in a mode line on the bottom of a frame and
that frame's drag-with-mode-line parameter is non-nil, drag the
frame instead.
Probably introduced at or before Emacs version 24.1.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hmouse-drv.el
;;; ************************************************************************
;;; Public support functions
;;; ************************************************************************
;; Next function is redefined from Emacs mouse.el. The standard
;; version allows moving frames by dragging a bottommost modeline with
;; mouse button1 but only if there is no minibuffer window (a rare
;; configuration) This limitation is so that the minibuffer window
;; can be manually resized.
;;
;; Hyperbole's mouse buttons do not support resizing the minibuffer
;; window so instead this function is modified to allow moving frames
;; that have a minibuffer window.
;;
;; The way this function was written does not allow hooking into it,
;; forcing inclusion of a modified version here.
(defun mouse-drag-mode-line (start-event)
"Change the height of a window by dragging on its mode line.
START-EVENT is the starting mouse event of the drag action.
If the drag happens in a mode line on the bottom of a frame and
that frame's `drag-with-mode-line' parameter is non-nil, drag the
frame instead."
(interactive "e")
(let* ((start (event-start start-event))
(window (posn-window start))
(frame (window-frame window)))
(cond
((not (window-live-p window)))
((or (not (window-at-side-p window 'bottom))
;; Allow resizing the minibuffer window if it's on the
;; same frame as and immediately below `window', and it's
;; either active or `resize-mini-windows' is nil.
(let ((minibuffer-window (minibuffer-window frame)))
(and (eq (window-frame minibuffer-window) frame)
(or (not resize-mini-windows)
(eq minibuffer-window
(active-minibuffer-window))))))
(mouse-drag-line start-event 'mode))
((and (frame-parameter frame 'drag-with-mode-line)
(window-at-side-p window 'bottom))
;; Drag frame when the window is on the bottom of its frame.
(mouse-drag-frame-move start-event)))))