Spec-Zone.ru › Elisp

Поднятие, Опускание и Переупорядочивание Рамок

Большинство систем окон используют метафору рабочего стола. Частью этой метафоры является представление о том, что окна на уровне системы (например, рамки Emacs) расположены в воображаемой третьей размерности, перпендикулярной поверхности экрана. Порядок, задаваемый наложением, является полным и обычно называется порядком наложения (или порядком Z). Там, где области двух окон перекрываются, окно, находящееся выше в этом порядке, будет (частично) накладываться на окно, находящееся ниже.

Вы можете поднять рамку наверх этого порядка или опустить рамку вниз, используя функции raise-frame и lower-frame. Вы можете переупорядочить рамку непосредственно над или под другой рамкой, используя функцию frame-restack.

Обратите внимание, что все функции, описанные ниже, будут учитывать привязку рамок (и всех других окон системы окон) к их соответствующим группам Z (см. Параметры позиционирования). Например, вы обычно не можете опустить рамку ниже окна рабочего стола, и вы не можете поднять рамку, чей параметр z-group равен nil, выше панели задач или всплывающего окна системы окон.

Команда: raise-frame &необязательная рамка

Эта функция поднимает рамку frame (по умолчанию, выбранную рамку) над всеми другими рамками, принадлежащими той же или более низкой группе Z, что и frame. Если frame невидима или свёрнута, это делает её видимой. Если frame является дочерней рамкой (см. Дочерние рамки), это поднимает frame над всеми другими дочерними рамками её родителя.

Команда: lower-frame &необязательная рамка

Эта функция опускает рамку frame (по умолчанию, выбранную рамку) ниже всех других рамок, принадлежащих той же или более высокой группе Z, что и frame. Если frame является дочерней рамкой (см. Дочерние рамки), это опускает frame ниже всех других дочерних рамок её родителя.

Функция: frame-restack frame1 frame2 &необязательное above

Эта функция переупорядочивает frame1 под frame2. Это подразумевает, что если оба окна видимы и их области отображения перекрываются, frame2 будет (частично) скрывать frame1. Если необязательный третий аргумент above не является nil, эта функция переупорядочивает frame1 над frame2. Это означает, что если оба окна видимы и их области отображения перекрываются, frame1 будет (частично) скрывать frame2.

Технически, эту функцию можно рассматривать как атомное действие, выполняемое в два шага: на первом шаге окно frame1 удаляется с экрана. На втором шаге окно frame1 возвращается на экран под (над, если above имеет значение «истина») окном frame2. Следовательно, положение frame2 в порядке Z (наложения) на экране относительно всех других рамок, исключая frame1, остаётся неизменным.

Некоторые менеджеры окон могут отказаться от переупорядочивания окон.

Обратите внимание, что эффект переупорядочения будет действовать только до тех пор, пока ни одна из вовлечённых рамок не будет свёрнута или сделана невидимой. Вы можете использовать параметр рамки z-group (см. Параметры позиционирования), чтобы добавить рамку в группу рамок, которые постоянно отображаются над или под другими рамками. Пока рамка принадлежит одной из этих групп, переупорядочение её будет влиять только на её относительное положение в этой группе. Эффект переупорядочения рамок, принадлежащих различным группам Z, не определён. Вы можете вывести список рамок в их текущем порядке наложения с помощью функции frame-list-z-order (см. Поиск всех рамок).

Пользовательский параметр: minibuffer-auto-raise

Если это значение не nil, активация минибуфера поднимает рамку, в которой находится окно минибуфера.

В системах окон вы также можете включить автоматическое поднятие (при выборе рамки) или автоматическое опускание (при отмене выбора рамки), используя параметры рамок. См. Параметры управления.

Концепция подъёма и опускания рамок также применима к рамкам текстовых терминалов. На каждом текстовом терминале в любой момент времени отображается только верхняя рамка.

Функция: tty-top-frame &необязательный терминал

Эта функция возвращает верхнюю рамку на terminal. terminal должен быть объектом терминала, рамкой (то есть терминалом рамки) или nil (то есть терминалом выбранной рамки). Если это не относится к текстовому терминалу, возвращаемое значение равно nil.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Raising-and-Lowering.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API