diff options
| author | Martin Rudalics | 2025-11-02 09:24:05 +0100 |
|---|---|---|
| committer | Martin Rudalics | 2025-11-02 09:24:05 +0100 |
| commit | 2c4e7a99cc161ed4ee246a698792feeff26d7b91 (patch) | |
| tree | 802468fc5cbdcad795cd54f48d78a6ad8a1b6931 /doc | |
| parent | fae5ced1acaff0dcf8a2206272d7762612ea7289 (diff) | |
| download | emacs-2c4e7a99cc161ed4ee246a698792feeff26d7b91.tar.gz emacs-2c4e7a99cc161ed4ee246a698792feeff26d7b91.zip | |
Handle resizing of fullscreen frames more consistently (Bug#79704)
* src/frame.c (adjust_frame_size): Honor new option
'alter-fullscreen-frames'.
(syms_of_frame) <alter-fullscreen-frames>: New option to
maintain consistent state when attempting to resize fullscreen
frames. Default to 'inhibit' for NS builds because these
resized the frame while leaving the 'fullscreen' parameter alone
(Bug#79704).
(syms_of_frame) <Qinhibit>: Define symbol.
* lisp/cus-start.el (standard): Add customization options for
'alter-fullscreen-frames'
* doc/lispref/frames.texi (Frame Size): Describe new option
'alter-fullscreen-frames'.
* etc/NEWS: Call out new option 'alter-fullscreen-frames'.
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/lispref/frames.texi | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 740ea43a90f..c053d8c5543 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi | |||
| @@ -1234,6 +1234,37 @@ bottom corner of the frame. The parameters @code{min-width} and | |||
| 1234 | @code{min-height} (@pxref{Size Parameters}) can be used to obtain a | 1234 | @code{min-height} (@pxref{Size Parameters}) can be used to obtain a |
| 1235 | similar behavior when changing the frame size from within Emacs. | 1235 | similar behavior when changing the frame size from within Emacs. |
| 1236 | 1236 | ||
| 1237 | When a frame is in a fullscreen state (@pxref{Size Parameters}), | ||
| 1238 | requests to change the frame size via one of these functions may be | ||
| 1239 | supported or refused either by Emacs itself or by the window manager. | ||
| 1240 | The following variable provides more control of the resulting behavior. | ||
| 1241 | |||
| 1242 | @cindex altering the size of fullscreen frames | ||
| 1243 | @cindex resizing fullscreen frames | ||
| 1244 | @defopt alter-fullscreen-frames | ||
| 1245 | This options controls how to handle requests to alter fullscreen frames. | ||
| 1246 | Emacs consults it when asked to resize a fullscreen frame via functions | ||
| 1247 | like @code{set-frame-size} or when setting the @code{width} or | ||
| 1248 | @code{height} parameter of a frame. The following values are provided: | ||
| 1249 | |||
| 1250 | @table @code | ||
| 1251 | @item nil | ||
| 1252 | This will forward the resize request to the window manager and leave it | ||
| 1253 | to the latter how to proceed. | ||
| 1254 | |||
| 1255 | @item t | ||
| 1256 | This will first reset the fullscreen status and then forward the resize | ||
| 1257 | request on to the window manager. | ||
| 1258 | |||
| 1259 | @item inhibit | ||
| 1260 | This will reject the resize request and leave the fullscreen status | ||
| 1261 | unchanged. | ||
| 1262 | @end table | ||
| 1263 | |||
| 1264 | The default is @code{inhibit} on NS builds and @code{nil} everywhere | ||
| 1265 | else. | ||
| 1266 | @end defopt | ||
| 1267 | |||
| 1237 | @cindex tracking frame size changes | 1268 | @cindex tracking frame size changes |
| 1238 | The abnormal hook @code{window-size-change-functions} (@pxref{Window | 1269 | The abnormal hook @code{window-size-change-functions} (@pxref{Window |
| 1239 | Hooks}) tracks all changes of the inner size of a frame including those | 1270 | Hooks}) tracks all changes of the inner size of a frame including those |