* lisp/frame.el (toggle-frame-maximized/fullscreen): Add frame arg.

(Bug#29986)
This commit is contained in:
Juri Linkov 2018-01-12 00:14:35 +02:00
parent ad283dfb22
commit 30e6e312d9

View file

@ -2322,7 +2322,6 @@ command starts, by installing a pre-command hook."
(blink-cursor-suspend)
(add-hook 'post-command-hook 'blink-cursor-check)))
(defun blink-cursor-end ()
"Stop cursor blinking.
This is installed as a pre-command hook by `blink-cursor-start'.
@ -2384,12 +2383,11 @@ terminals, cursor blinking is controlled by the terminal."
(add-hook 'focus-out-hook #'blink-cursor-suspend)
(blink-cursor--start-idle-timer)))
;; Frame maximization/fullscreen
(defun toggle-frame-maximized ()
"Toggle maximization state of selected frame.
(defun toggle-frame-maximized (&optional frame)
"Toggle maximization state of FRAME.
Maximize selected frame or un-maximize if it is already maximized.
If the frame is in fullscreen state, don't change its state, but
@ -2404,19 +2402,19 @@ transitions from one fullscreen state to another.
See also `toggle-frame-fullscreen'."
(interactive)
(let ((fullscreen (frame-parameter nil 'fullscreen)))
(let ((fullscreen (frame-parameter frame 'fullscreen)))
(cond
((memq fullscreen '(fullscreen fullboth))
(set-frame-parameter nil 'fullscreen-restore 'maximized))
(set-frame-parameter frame 'fullscreen-restore 'maximized))
((eq fullscreen 'maximized)
(set-frame-parameter nil 'fullscreen nil))
(set-frame-parameter frame 'fullscreen nil))
(t
(set-frame-parameter nil 'fullscreen 'maximized)))))
(set-frame-parameter frame 'fullscreen 'maximized)))))
(defun toggle-frame-fullscreen ()
"Toggle fullscreen state of selected frame.
Make selected frame fullscreen or restore its previous size if it
is already fullscreen.
(defun toggle-frame-fullscreen (&optional frame)
"Toggle fullscreen state of FRAME.
Make selected frame fullscreen or restore its previous size
if it is already fullscreen.
Before making the frame fullscreen remember the current value of
the frame's `fullscreen' parameter in the `fullscreen-restore'
@ -2431,18 +2429,19 @@ transitions from one fullscreen state to another.
See also `toggle-frame-maximized'."
(interactive)
(let ((fullscreen (frame-parameter nil 'fullscreen)))
(let ((fullscreen (frame-parameter frame 'fullscreen)))
(if (memq fullscreen '(fullscreen fullboth))
(let ((fullscreen-restore (frame-parameter nil 'fullscreen-restore)))
(let ((fullscreen-restore (frame-parameter frame 'fullscreen-restore)))
(if (memq fullscreen-restore '(maximized fullheight fullwidth))
(set-frame-parameter nil 'fullscreen fullscreen-restore)
(set-frame-parameter nil 'fullscreen nil)))
(set-frame-parameter frame 'fullscreen fullscreen-restore)
(set-frame-parameter frame 'fullscreen nil)))
(modify-frame-parameters
nil `((fullscreen . fullboth) (fullscreen-restore . ,fullscreen))))
frame `((fullscreen . fullboth) (fullscreen-restore . ,fullscreen))))
;; Manipulating a frame without waiting for the fullscreen
;; animation to complete can cause a crash, or other unexpected
;; behaviour, on macOS (bug#28496).
(when (featurep 'cocoa) (sleep-for 0.5))))
;;;; Key bindings