aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorMartin Rudalics2015-02-11 09:07:24 +0100
committerMartin Rudalics2015-02-11 09:07:24 +0100
commit02138cb0b88c5f6addf891d725967d9867eda3f9 (patch)
tree073bd7e1c58cee1f02a52ff8eabcfa6dd24a6fb2 /lisp
parent6ebbeafc94a35e49fc3a842b5f5fbd7b069ce936 (diff)
downloademacs-02138cb0b88c5f6addf891d725967d9867eda3f9.tar.gz
emacs-02138cb0b88c5f6addf891d725967d9867eda3f9.zip
Improve toggling fullscreen state of frames.
* frame.el (toggle-frame-maximized, toggle-frame-fullscreen): Rename frame parameter `maximized' to `fullscreen-restore'. Restore fullwidth/-height after fullboth state. Update doc-strings. * w32term.c (w32_read_socket): In SIZE_MAXIMIZED and SIZE_RESTORED cases correctly handle `maximized' value for the `fullscreen' parameter. Don't use the 'maximized' parameter any more. (w32fullscreen_hook): Include menu bar height when calculating new text height in FULLSCREEN_BOTH case. * xterm.c (do_ewmh_fullscreen): Handle transition from FULLSCREEN_BOTH to FULLSCREEN_MAXIMIZED when x_frame_normalize_before_maximize is set. * frames.texi (Size Parameters): Update description of fullscreen frame parameter.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/frame.el73
2 files changed, 43 insertions, 37 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 03b465e8030..a6e5f59503e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
12015-02-11 Martin Rudalics <rudalics@gmx.at>
2
3 * frame.el (toggle-frame-maximized, toggle-frame-fullscreen):
4 Rename frame parameter `maximized' to `fullscreen-restore'.
5 Restore fullwidth/-height after fullboth state. Update
6 doc-strings.
7
12015-02-11 Lars Ingebrigtsen <larsi@gnus.org> 82015-02-11 Lars Ingebrigtsen <larsi@gnus.org>
2 9
3 * net/shr.el (shr-insert): Make sure the space inserted has the 10 * net/shr.el (shr-insert): Make sure the space inserted has the
diff --git a/lisp/frame.el b/lisp/frame.el
index ecb433e8335..dfcebf16455 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -1874,57 +1874,56 @@ terminals, cursor blinking is controlled by the terminal."
1874;; Frame maximization/fullscreen 1874;; Frame maximization/fullscreen
1875 1875
1876(defun toggle-frame-maximized () 1876(defun toggle-frame-maximized ()
1877 "Toggle maximization state of the selected frame. 1877 "Toggle maximization state of selected frame.
1878Maximize the selected frame or un-maximize if it is already maximized. 1878Maximize selected frame or un-maximize if it is already maximized.
1879Respect window manager screen decorations. 1879
1880If the frame is in fullscreen mode, don't change its mode, 1880If the frame is in fullscreen state, don't change its state, but
1881just toggle the temporary frame parameter `maximized', 1881set the frame's `fullscreen-restore' parameter to `maximized', so
1882so the frame will go to the right maximization state 1882the frame will be maximized after disabling fullscreen state.
1883after disabling fullscreen mode.
1884 1883
1885Note that with some window managers you may have to set 1884Note that with some window managers you may have to set
1886`frame-resize-pixelwise' to non-nil in order to make a frame 1885`frame-resize-pixelwise' to non-nil in order to make a frame
1887appear truly maximized. 1886appear truly maximized. In addition, you may have to set
1887`x-frame-normalize-before-maximize' in order to enable
1888transitions from one fullscreen state to another.
1888 1889
1889See also `toggle-frame-fullscreen'." 1890See also `toggle-frame-fullscreen'."
1890 (interactive) 1891 (interactive)
1891 (if (memq (frame-parameter nil 'fullscreen) '(fullscreen fullboth)) 1892 (let ((fullscreen (frame-parameter nil 'fullscreen)))
1892 (modify-frame-parameters 1893 (cond
1893 nil 1894 ((memq fullscreen '(fullscreen fullboth))
1894 `((maximized 1895 (set-frame-parameter nil 'fullscreen-restore 'maximized))
1895 . ,(unless (eq (frame-parameter nil 'maximized) 'maximized) 1896 ((eq fullscreen 'maximized)
1896 'maximized)))) 1897 (set-frame-parameter nil 'fullscreen nil))
1897 (modify-frame-parameters 1898 (t
1898 nil 1899 (set-frame-parameter nil 'fullscreen 'maximized)))))
1899 `((fullscreen
1900 . ,(unless (eq (frame-parameter nil 'fullscreen) 'maximized)
1901 'maximized))))))
1902 1900
1903(defun toggle-frame-fullscreen () 1901(defun toggle-frame-fullscreen ()
1904 "Toggle fullscreen mode of the selected frame. 1902 "Toggle fullscreen state of selected frame.
1905Enable fullscreen mode of the selected frame or disable if it is 1903Make selected frame fullscreen or restore its previous size if it
1906already fullscreen. Ignore window manager screen decorations. 1904is already fullscreen.
1907When turning on fullscreen mode, remember the previous value of the 1905
1908maximization state in the temporary frame parameter `maximized'. 1906Before making the frame fullscreen remember the current value of
1909Restore the maximization state when turning off fullscreen mode. 1907the frame's `fullscreen' parameter in the `fullscreen-restore'
1908parameter of the frame. That value is used to restore the
1909frame's size when toggling fullscreen the next time.
1910 1910
1911Note that with some window managers you may have to set 1911Note that with some window managers you may have to set
1912`frame-resize-pixelwise' to non-nil in order to make a frame 1912`frame-resize-pixelwise' to non-nil in order to make a frame
1913appear truly fullscreen. 1913appear truly fullscreen. In addition, you may have to set
1914`x-frame-normalize-before-maximize' in order to enable
1915transitions from one fullscreen state to another.
1914 1916
1915See also `toggle-frame-maximized'." 1917See also `toggle-frame-maximized'."
1916 (interactive) 1918 (interactive)
1917 (modify-frame-parameters 1919 (let ((fullscreen (frame-parameter nil 'fullscreen)))
1918 nil 1920 (if (memq fullscreen '(fullscreen fullboth))
1919 `((maximized 1921 (let ((fullscreen-restore (frame-parameter nil 'fullscreen-restore)))
1920 . ,(unless (memq (frame-parameter nil 'fullscreen) '(fullscreen fullboth)) 1922 (if (memq fullscreen-restore '(maximized fullheight fullwidth))
1921 (frame-parameter nil 'fullscreen))) 1923 (set-frame-parameter nil 'fullscreen fullscreen-restore)
1922 (fullscreen 1924 (set-frame-parameter nil 'fullscreen nil)))
1923 . ,(if (memq (frame-parameter nil 'fullscreen) '(fullscreen fullboth)) 1925 (modify-frame-parameters
1924 (if (eq (frame-parameter nil 'maximized) 'maximized) 1926 nil `((fullscreen . fullboth) (fullscreen-restore . ,fullscreen))))))
1925 'maximized)
1926 'fullscreen)))))
1927
1928 1927
1929;;;; Key bindings 1928;;;; Key bindings
1930 1929