mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 09:14:18 +00:00
New command 'mode-line-invisible-mode'
This new command allows hide the mode line in the current buffer. (Bug#78881) * doc/emacs/display.texi (Optional Mode Line): Document feature. * etc/NEWS: Announce changes. * lisp/bindings.el (mode-line-invisible--buf-state): New buffer local variable. (mode-line-invisible-mode): New minor mode.
This commit is contained in:
parent
34dad30e49
commit
7e56ffd51b
3 changed files with 44 additions and 0 deletions
|
|
@ -1826,6 +1826,14 @@ further ``compress'' the mode line, you may customize the
|
|||
and Emacs will hide some minor mode indicators on the mode line by
|
||||
collapsing them into a single clickable button.
|
||||
|
||||
@findex mode-line-invisible-mode
|
||||
By default, most buffers display a mode line, but if the mode line is
|
||||
not useful in a buffer, you can use the command @w{@kbd{M-x
|
||||
mode-line-invisible-mode}} to hide the mode line in the current buffer,
|
||||
the mode line remains hidden until this command is called again. To
|
||||
always hide the mode line when entering to a major mode, add
|
||||
@code{mode-line-invisible-mode} to a hook @pxref{Hooks}.
|
||||
|
||||
@node Text Display
|
||||
@section How Text Is Displayed
|
||||
@cindex characters (in text)
|
||||
|
|
|
|||
5
etc/NEWS
5
etc/NEWS
|
|
@ -353,6 +353,11 @@ This option allows changing or removing the delimiters shown around
|
|||
the major mode and list of minor modes in the mode line. The default
|
||||
retains the existing behavior of inserting parentheses.
|
||||
|
||||
+++
|
||||
*** New minor mode 'mode-line-invisible-mode'.
|
||||
This command toggles the mode-line visibility of the current buffer:
|
||||
hides it if it is shown, and shows it if it's hidden.
|
||||
|
||||
** Tab Bars and Tab Lines
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -56,6 +56,37 @@ corresponding to the mode line clicked."
|
|||
(widen)
|
||||
(force-mode-line-update)))
|
||||
|
||||
;; Variable used by `mode-line-invisible-mode' for
|
||||
;; store mode-line value in current buffer.
|
||||
(defvar-local mode-line-invisible--buf-state)
|
||||
|
||||
(define-minor-mode mode-line-invisible-mode
|
||||
"Toggle the mode-line visibility of the current buffer.
|
||||
Hide the mode line if it is shown, and show it if it's hidden."
|
||||
:global nil
|
||||
(if mode-line-invisible-mode
|
||||
(progn
|
||||
(add-hook 'after-change-major-mode-hook #'mode-line-invisible-mode nil t)
|
||||
(setq mode-line-invisible--buf-state
|
||||
(buffer-local-set-state mode-line-format nil)))
|
||||
|
||||
(remove-hook 'after-change-major-mode-hook #'mode-line-invisible-mode t)
|
||||
|
||||
(when mode-line-invisible--buf-state
|
||||
(setq mode-line-invisible--buf-state
|
||||
(buffer-local-restore-state mode-line-invisible--buf-state)))
|
||||
|
||||
;; Display a mode line if buffer does not have one by default
|
||||
(unless mode-line-format
|
||||
(setq-local mode-line-format (default-value 'mode-line-format)))
|
||||
|
||||
;; Update mode line
|
||||
(when (called-interactively-p 'any)
|
||||
(force-mode-line-update))))
|
||||
|
||||
(put 'mode-line-invisible--buf-state 'permanent-local t)
|
||||
(put 'mode-line-invisible-mode 'permanent-local-hook t)
|
||||
|
||||
(defvar mode-line-input-method-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map [mode-line mouse-2]
|
||||
|
|
|
|||
Loading…
Reference in a new issue