diff options
author | Juri Linkov <juri@jurta.org> | 2012-12-27 22:09:45 +0200 |
---|---|---|
committer | Juri Linkov <juri@jurta.org> | 2012-12-27 22:09:45 +0200 |
commit | a45b76475ee930497cca375432b44aa0def77fa0 (patch) | |
tree | 5066e114c2d44eb18af82e1e87cf684603799613 /lisp/frame.el | |
parent | bcdfbc0e9695f44d8a0e5c7f083fe5298590c973 (diff) | |
download | emacs-a45b76475ee930497cca375432b44aa0def77fa0.tar.gz |
* lisp/frame.el (frame-maximization-style): Remove user option.
(cycle-frame-maximized): Remove function.
(toggle-frame-maximized): Rewrite and bind to M-<f10>.
(toggle-frame-fullscreen): New command bound to <f11> instead of
`toggle-frame-maximized'.
http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00703.html
Diffstat (limited to 'lisp/frame.el')
-rw-r--r-- | lisp/frame.el | 61 |
1 files changed, 39 insertions, 22 deletions
diff --git a/lisp/frame.el b/lisp/frame.el index 559aa35242d..c19f38fceeb 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -1654,32 +1654,49 @@ terminals, cursor blinking is controlled by the terminal." 'blink-cursor-start)))) -;; Frame maximization -(defcustom frame-maximization-style 'maximized - "The maximization style of \\[toggle-frame-maximized]." - :version "24.4" - :type '(choice - (const :tab "Respect window manager screen decorations." maximized) - (const :tab "Ignore window manager screen decorations." fullscreen)) - :group 'frames) +;; Frame maximization/fullscreen (defun toggle-frame-maximized () - "Maximize/un-maximize Emacs frame according to `frame-maximization-style'. -See also `cycle-frame-maximized'." + "Toggle maximization state of the selected frame. +Maximize the selected frame or un-maximize if it is already maximized. +Respect window manager screen decorations. +If the frame is in fullscreen mode, don't change its mode, +just toggle the temporary frame parameter `maximized', +so the frame will go to the right maximization state +after disabling fullscreen mode. +See also `toggle-frame-fullscreen'." (interactive) - (modify-frame-parameters - nil `((fullscreen . ,(if (frame-parameter nil 'fullscreen) - nil frame-maximization-style))))) - -(defun cycle-frame-maximized () - "Cycle Emacs frame between normal, maximized, and fullscreen. + (if (eq (frame-parameter nil 'fullscreen) 'fullscreen) + (modify-frame-parameters + nil + `((maximized + . ,(unless (eq (frame-parameter nil 'maximized) 'maximized) + 'maximized)))) + (modify-frame-parameters + nil + `((fullscreen + . ,(unless (eq (frame-parameter nil 'fullscreen) 'maximized) + 'maximized)))))) + +(defun toggle-frame-fullscreen () + "Toggle fullscreen mode of the selected frame. +Enable fullscreen mode of the selected frame or disable if it is +already fullscreen. Ignore window manager screen decorations. +When turning on fullscreen mode, remember the previous value of the +maximization state in the temporary frame parameter `maximized'. +Restore the maximization state when turning off fullscreen mode. See also `toggle-frame-maximized'." (interactive) (modify-frame-parameters - nil `((fullscreen . ,(cl-case (frame-parameter nil 'fullscreen) - ((nil) 'maximized) - ((maximized) 'fullscreen) - ((fullscreen) nil)))))) + nil + `((maximized + . ,(unless (eq (frame-parameter nil 'fullscreen) 'fullscreen) + (frame-parameter nil 'fullscreen))) + (fullscreen + . ,(if (eq (frame-parameter nil 'fullscreen) 'fullscreen) + (if (eq (frame-parameter nil 'maximized) 'maximized) + 'maximized) + 'fullscreen))))) ;;;; Key bindings @@ -1688,8 +1705,8 @@ See also `toggle-frame-maximized'." (define-key ctl-x-5-map "1" 'delete-other-frames) (define-key ctl-x-5-map "0" 'delete-frame) (define-key ctl-x-5-map "o" 'other-frame) -(define-key global-map [f11] 'toggle-frame-maximized) -(define-key global-map [(shift f11)] 'cycle-frame-maximized) +(define-key global-map [f11] 'toggle-frame-fullscreen) +(define-key global-map [(meta f10)] 'toggle-frame-maximized) ;; Misc. |