From: Juri Linkov Date: Thu, 27 Dec 2012 20:09:45 +0000 (+0200) Subject: * lisp/frame.el (frame-maximization-style): Remove user option. X-Git-Tag: emacs-24.3.90~173^2~7^2~469 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a45b76475ee930497cca375432b44aa0def77fa0;p=emacs.git * lisp/frame.el (frame-maximization-style): Remove user option. (cycle-frame-maximized): Remove function. (toggle-frame-maximized): Rewrite and bind to M-. (toggle-frame-fullscreen): New command bound to instead of `toggle-frame-maximized'. http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00703.html --- diff --git a/etc/NEWS b/etc/NEWS index eba45cebe0f..0139c8da15d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -53,8 +53,8 @@ POSIX ACL interfaces. * Editing Changes in Emacs 24.4 -** New commands `toggle-frame-maximized' and `cycle-frame-maximized', -bound to and S-, respectively. +** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized', +bound to and M-, respectively. * Changes in Specialized Modes and Packages in Emacs 24.4 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 32553e73741..747662ee468 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2012-12-27 Juri Linkov + + * frame.el (frame-maximization-style): Remove user option. + (cycle-frame-maximized): Remove function. + (toggle-frame-maximized): Rewrite and bind to M-. + (toggle-frame-fullscreen): New command bound to instead of + `toggle-frame-maximized'. + http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00703.html + 2012-12-27 Michael Albinus * net/tramp.el (tramp-handle-file-accessible-directory-p): New defun. 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.