mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-05 22:20:24 -08:00
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'.
This commit is contained in:
parent
fae5ced1ac
commit
2c4e7a99cc
4 changed files with 91 additions and 0 deletions
|
|
@ -1234,6 +1234,37 @@ bottom corner of the frame. The parameters @code{min-width} and
|
|||
@code{min-height} (@pxref{Size Parameters}) can be used to obtain a
|
||||
similar behavior when changing the frame size from within Emacs.
|
||||
|
||||
When a frame is in a fullscreen state (@pxref{Size Parameters}),
|
||||
requests to change the frame size via one of these functions may be
|
||||
supported or refused either by Emacs itself or by the window manager.
|
||||
The following variable provides more control of the resulting behavior.
|
||||
|
||||
@cindex altering the size of fullscreen frames
|
||||
@cindex resizing fullscreen frames
|
||||
@defopt alter-fullscreen-frames
|
||||
This options controls how to handle requests to alter fullscreen frames.
|
||||
Emacs consults it when asked to resize a fullscreen frame via functions
|
||||
like @code{set-frame-size} or when setting the @code{width} or
|
||||
@code{height} parameter of a frame. The following values are provided:
|
||||
|
||||
@table @code
|
||||
@item nil
|
||||
This will forward the resize request to the window manager and leave it
|
||||
to the latter how to proceed.
|
||||
|
||||
@item t
|
||||
This will first reset the fullscreen status and then forward the resize
|
||||
request on to the window manager.
|
||||
|
||||
@item inhibit
|
||||
This will reject the resize request and leave the fullscreen status
|
||||
unchanged.
|
||||
@end table
|
||||
|
||||
The default is @code{inhibit} on NS builds and @code{nil} everywhere
|
||||
else.
|
||||
@end defopt
|
||||
|
||||
@cindex tracking frame size changes
|
||||
The abnormal hook @code{window-size-change-functions} (@pxref{Window
|
||||
Hooks}) tracks all changes of the inner size of a frame including those
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue