Поднятие, опускание и изменение порядка окон
В большинстве оконных систем используется метафора рабочего стола. Часть этой метафоры — представление о том, что окна системного уровня (например, представляющие кадры Emacs) расположены в воображаемом третьем измерении, перпендикулярном поверхности экрана. Порядок, задаваемый расположением окон друг над другом, является полным и обычно называется порядком наложения (или Z-порядком). Там, где области двух окон перекрываются, окно, находящееся выше в этом порядке, будет (частично) закрывать окно под ним.
С помощью функций raise-frame и lower-frame можно поднять кадр в начало этого порядка или опустить кадр в его конец. С помощью функции frame-restack можно переместить кадр непосредственно над или под другим кадром.
Обратите внимание, что все описанные ниже функции учитывают принадлежность кадров (и всех остальных окон оконной системы) соответствующей группе по оси z (см. Параметры положения). Например, обычно нельзя опустить кадр ниже окна рабочего стола, а кадр, параметр z-group которого имеет значение nil, нельзя поднять выше панели задач или окна подсказки оконной системы.
- Команда: raise-frame &optional frame
Эта функция поднимает кадр frame (по умолчанию — выбранный кадр) выше всех остальных кадров, принадлежащих той же или более низкой группе по оси z, что и frame. Если frame невидим или свернут в значок, эта функция делает его видимым. Если frame является дочерним кадром (см. Дочерние кадры), эта функция поднимает frame выше всех остальных дочерних кадров его родителя. Для недочерних кадров в текстовом терминале эта функция ничего не делает.
- Команда: lower-frame &optional frame
Эта функция опускает кадр frame (по умолчанию — выбранный кадр) ниже всех остальных кадров, принадлежащих той же или более высокой группе по оси z, что и frame. Если frame является дочерним кадром (см. Дочерние кадры), эта функция опускает frame ниже всех остальных дочерних кадров его родителя. Для недочерних кадров в текстовом терминале эта функция ничего не делает.
- Функция: frame-restack frame1 frame2 &optional above
-
Эта функция помещает frame1 ниже frame2 в порядке наложения. Это означает, что если оба кадра видимы и области их отображения перекрываются, frame2 будет (частично) закрывать frame1. Если третий необязательный аргумент above не равен
nil, эта функция помещает frame1 выше frame2 в порядке наложения. Это означает, что если оба кадра видимы и области их отображения перекрываются, frame1 будет (частично) закрывать frame2.Технически эту функцию можно рассматривать как атомарное действие, выполняемое в два шага. На первом шаге окно оконной системы, соответствующее кадру frame1, удаляется с экрана. На втором шаге окно frame1 снова помещается на экран ниже (или выше, если above имеет значение true) окна frame2. Таким образом, положение frame2 в Z-порядке (порядке наложения) своего экрана относительно всех остальных кадров, кроме frame1, не меняется.
Некоторые оконные менеджеры могут отказываться менять порядок наложения окон. Эта функция пока не реализована для текстовых терминалов.
Обратите внимание, что эффект изменения порядка наложения сохраняется, только пока ни один из задействованных кадров не свернут в значок и не скрыт. С помощью параметра кадра z-group (см. Параметры положения) можно навсегда включить кадр в группу кадров, которые всегда отображаются выше или ниже других кадров. Пока кадр принадлежит одной из этих групп, изменение его порядка наложения влияет только на его относительное положение внутри этой группы. Эффект изменения порядка наложения кадров, принадлежащих разным группам по оси z, не определен. С помощью функции frame-list-z-order можно получить список кадров в текущем порядке наложения (см. Поиск всех кадров).
- Пользовательская настройка: minibuffer-auto-raise
Если значение этой переменной не равно
nil, при активации минибуфера поднимается кадр, в котором находится окно минибуфера. Эта переменная не действует в текстовых терминалах.
В оконных системах также можно включить автоматическое поднятие кадра (при его выборе) или автоматическое опускание (при отмене выбора), используя параметры кадров. См. Параметры управления окнами.
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Raising-and-Lowering.html