aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorJuri Linkov <[email protected]>2012-12-27 22:09:45 +0200
committerJuri Linkov <[email protected]>2012-12-27 22:09:45 +0200
commita45b76475ee930497cca375432b44aa0def77fa0 (patch)
tree5066e114c2d44eb18af82e1e87cf684603799613 /lisp
parentbcdfbc0e9695f44d8a0e5c7f083fe5298590c973 (diff)
* 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')
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/frame.el61
2 files changed, 48 insertions, 22 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 32553e7374..747662ee46 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
+2012-12-27 Juri Linkov <[email protected]>
+
+ * 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
+
2012-12-27 Michael Albinus <[email protected]>
* net/tramp.el (tramp-handle-file-accessible-directory-p): New defun.
diff --git a/lisp/frame.el b/lisp/frame.el
index 559aa35242..c19f38fcee 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.