diff options
| author | Martin Rudalics | 2017-10-01 10:17:17 +0200 |
|---|---|---|
| committer | Martin Rudalics | 2017-10-01 10:17:17 +0200 |
| commit | b03b4f6d79f1736f2455574aced92f89ed032d79 (patch) | |
| tree | d1c6e321991f13f90b95dd2a90bded0263c7406c /doc | |
| parent | ba9139c501ed8220980e898f127e293e8f263ea1 (diff) | |
| download | emacs-b03b4f6d79f1736f2455574aced92f89ed032d79.tar.gz emacs-b03b4f6d79f1736f2455574aced92f89ed032d79.zip | |
Improve handling of iconification of child frames (Bug#28611)
* src/frame.c (Ficonify_frame): Handle `iconify-child-frame' option.
(syms_of_frame): New symbols Qiconify_top_level and Qmake_invisible.
(iconify_child_frame): New option.
* lisp/cus-start.el (iconify-child-frame): Add customization
properties.
* doc/lispref/frames.texi (Child Frames): Describe new option
`iconify-child-frame'. Don't index "top-level frame" twice.
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/lispref/frames.texi | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index f66ecee8e8e..07a8b825026 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi | |||
| @@ -3076,15 +3076,14 @@ as long as the parameter is not changed or reset. Technically, this | |||
| 3076 | makes the child frame's window-system window a child window of the | 3076 | makes the child frame's window-system window a child window of the |
| 3077 | parent frame's window-system window. | 3077 | parent frame's window-system window. |
| 3078 | 3078 | ||
| 3079 | @cindex top-level frame | ||
| 3080 | @cindex reparent frame | 3079 | @cindex reparent frame |
| 3081 | @cindex nest frame | 3080 | @cindex nest frame |
| 3082 | The @code{parent-frame} parameter can be changed at any time. Setting | 3081 | The @code{parent-frame} parameter can be changed at any time. Setting |
| 3083 | it to another frame @dfn{reparents} the child frame. Setting it to | 3082 | it to another frame @dfn{reparents} the child frame. Setting it to |
| 3084 | another child frame makes the frame a @dfn{nested} child frame. Setting | 3083 | another child frame makes the frame a @dfn{nested} child frame. Setting |
| 3085 | it to @code{nil} restores the frame's status as a @dfn{top-level | 3084 | it to @code{nil} restores the frame's status as a top-level frame---a |
| 3086 | frame}---a frame whose window-system window is a child of its display's | 3085 | frame whose window-system window is a child of its display's root |
| 3087 | root window. | 3086 | window. |
| 3088 | 3087 | ||
| 3089 | Since child frames can be arbitrarily nested, a frame can be both a | 3088 | Since child frames can be arbitrarily nested, a frame can be both a |
| 3090 | child and a parent frame. Also, the relative roles of child and parent | 3089 | child and a parent frame. Also, the relative roles of child and parent |
| @@ -3203,7 +3202,11 @@ a number of other ways as well. Here we sketch a few of them: | |||
| 3203 | @item | 3202 | @item |
| 3204 | The semantics of maximizing and iconifying child frames is highly | 3203 | The semantics of maximizing and iconifying child frames is highly |
| 3205 | window-system dependent. As a rule, applications should never invoke | 3204 | window-system dependent. As a rule, applications should never invoke |
| 3206 | these operations for child frames. | 3205 | these operations for on frames. By default, invoking |
| 3206 | @code{iconify-frame} on a child frame will try to iconify the top-level | ||
| 3207 | frame corresponding to that child frame instead. To obtain a different | ||
| 3208 | behavior, users may customize the option @code{iconify-child-frame} | ||
| 3209 | described below. | ||
| 3207 | 3210 | ||
| 3208 | @item | 3211 | @item |
| 3209 | Raising, lowering and restacking child frames (@pxref{Raising and | 3212 | Raising, lowering and restacking child frames (@pxref{Raising and |
| @@ -3259,6 +3262,23 @@ frame in the largest empty area of an existing window. This can be | |||
| 3259 | useful to avoid that a child frame obscures any text shown in that | 3262 | useful to avoid that a child frame obscures any text shown in that |
| 3260 | window. | 3263 | window. |
| 3261 | 3264 | ||
| 3265 | Customizing the following option can be useful to tweak the behavior of | ||
| 3266 | @code{iconify-frame} for child frames. | ||
| 3267 | |||
| 3268 | @defvar iconify-child-frame | ||
| 3269 | This option tells Emacs how to proceed when it is asked to iconify a | ||
| 3270 | child frame. If it is @code{nil}, @code{iconify-frame} will do nothing | ||
| 3271 | when invoked on a child frame. If it is @code{iconify-top-level}, Emacs | ||
| 3272 | will try to iconify the top-level frame that is the ancestor of this | ||
| 3273 | child frame instead. If it is @code{make-invisible}, Emacs will try to | ||
| 3274 | make this child frame invisible instead of iconifying it. | ||
| 3275 | |||
| 3276 | Any other value means to try iconifying the child frame. Since such an | ||
| 3277 | attempt may not be honored by all window managers and can even lead to | ||
| 3278 | making the child frame unresponsive to user actions, the default is to | ||
| 3279 | iconify the top level frame instead. | ||
| 3280 | @end defvar | ||
| 3281 | |||
| 3262 | 3282 | ||
| 3263 | @node Mouse Tracking | 3283 | @node Mouse Tracking |
| 3264 | @section Mouse Tracking | 3284 | @section Mouse Tracking |