Удаление окна удаляет его из дерева окон фрейма. Если окно является активным, оно исчезает с экрана. Если окно является внутренним, удаляются и его дочерние окна.
Даже после удаления окно продолжает существовать как объект Lisp, пока на него не останется ссылок. Удаление окна может быть отменено путем восстановления сохраненной конфигурации окна (см. Конфигурации окон).
Эта функция удаляет window с отображения и возвращает
nil. Если window опущен или равен nil, по умолчанию
выбирается активное окно.
Если удаление окна приведет к тому, что в дереве окон не останется ни одного окна (например, если это единственное активное окно во фрейме) или все оставшиеся окна во фрейме window являются боковыми окнами (см. Боковые окна), сигнализируется ошибка. Если window является частью атомарного окна (см. Атомарные окна), эта функция пытается удалить корень этого атомарного окна вместо этого.
По умолчанию пространство, занимаемое window, передается
одному из его соседних окон, если таковые имеются. Однако, если переменная
window-combination-resize не равна nil,
пространство пропорционально распределяется между любыми оставшимися
окнами в той же комбинации окон. См. Объединение окон.
Поведение этой функции может быть изменено параметрами окна window,
при условии, что переменная ignore-window-parameters равна
nil. Если значение параметра окна delete-window
равно t, эта функция игнорирует все остальные параметры окна.
В противном случае, если значение параметра окна delete-window
является функцией, эта функция вызывается с аргументом window
вместо обычного действия delete-window. См. Параметры окон.
Когда delete-window удаляет активное окно своего фрейма,
он должен выбрать другое окно в качестве нового активного окна этого фрейма.
Следующий вариант позволяет настроить, какое окно будет выбрано.
Этот вариант позволяет указать, какое окно должно стать активным
окном фрейма после того, как delete-window удалит
ранее активное. Возможные варианты:
mru
(по умолчанию) выбирает наиболее недавно использовавшееся окно на этом фрейме.
pos
выбирает окно, занимающее координаты фрейма ранее активного окна на этом фрейме.
nil
выбирает первое окно (окно, возвращаемое frame-first-window)
на этом фрейме.
Окно с параметром no-other-window, не равным nil,
выбирается только в том случае, если все остальные окна на этом фрейме также
имеют этот параметр, не равный nil.
Эта функция заставляет window занять весь свой фрейм,
удаляя другие окна по мере необходимости. Если window опущен или
равен nil, по умолчанию выбирается активное окно. Сигнализируется
ошибка, если window является боковым окном (см. Боковые окна).
Если window является частью атомарного окна (см. Атомарные окна),
эта функция пытается заставить корень этого атомарного окна занять весь свой фрейм.
Возвращаемое значение равно nil.
Поведение этой функции может быть изменено параметрами окна window,
при условии, что переменная ignore-window-parameters равна
nil. Если значение параметра окна delete-other-windows
равно t, эта функция игнорирует все остальные параметры окна.
В противном случае, если значение параметра окна delete-other-windows
является функцией, эта функция вызывается с аргументом window
вместо обычного действия delete-other-windows. См. Параметры окон.
Кроме того, если ignore-window-parameters равно nil,
эта функция не удаляет ни одно окно, у которого параметр no-delete-other-windows
не равен nil.
Эта функция удаляет все окна, отображающие buffer-or-name,
вызывая delete-window для этих окон. buffer-or-name
должен быть буфером или именем буфера; если он опущен или равен nil,
по умолчанию используется текущий буфер. Если нет окон, отображающих указанный
буфер, эта функция ничего не делает. Если указанный буфер является минибуфером,
сигнализируется ошибка.
Если есть выделенное окно, отображающее буфер, и это окно является единственным на своем фрейме, эта функция также удаляет этот фрейм, если он не единственный фрейм на терминале.
Опциональный аргумент frame указывает, на каких фреймах выполнять операцию:
nil
означает выполнение операции со всеми фреймами.
t
означает выполнение операции с активным фреймом.
visible
означает выполнение операции со всеми видимыми фреймами.
0
означает выполнение операции со всеми видимыми или иконографированными фреймами.
Обратите внимание, что этот аргумент не имеет того же значения, что и в других
функциях, сканирующих все активные окна (см. Циклический порядок окон).
В частности, значения t и nil здесь
противоположны тому, что они означают в тех других функциях.