Неявное изменение размера фрейма
По умолчанию Emacs пытается сохранить неизменным количество строк и столбцов области текста фрейма, например, при переключении меню или панели инструментов, изменении шрифта по умолчанию или изменении ширины полосы прокрутки. Это означает, что в таком случае Emacs должен попросить менеджер окон изменить размер окна фрейма, чтобы вместить изменение размера.
Иногда такое неявное изменение размера фрейма может быть нежелательным, например, когда фрейм был максимизирован или переведен в полноэкранный режим (где он отключен по умолчанию). В общем случае пользователи могут отключить неявное изменение размера с помощью следующего параметра:
- Параметр пользователя: frame-inhibit-implied-resize
-
Если этот параметр
nil, изменение шрифта фрейма, строки меню, панели инструментов, внутренних границ, ободок или полос прокрутки может изменить размер внешней рамки, чтобы сохранить неизменным количество столбцов или строк области текста. Если этот параметрt, такое изменение размера не выполняется.Значение этого параметра также может быть списком параметров фрейма. В этом случае неявное изменение размера запрещается для изменения параметра, который присутствует в этом списке. В настоящее время этот параметр обрабатывает параметры
font,font-backend,internal-border-width,menu-bar-linesиtool-bar-lines.Изменение любого из параметров фрейма
scroll-bar-width,scroll-bar-height,vertical-scroll-bars,horizontal-scroll-bars,left-fringeиright-fringeобрабатывается так, как если бы фрейм содержал только одно активное окно. Это означает, например, что удаление вертикальных полос прокрутки в фрейме, содержащем несколько окон рядом, уменьшит ширину внешней рамки на ширину одной полосы прокрутки при условии, что этот параметрnil, и сохранит её неизменной, если этот параметрtили список, содержащийvertical-scroll-bars.Значение по умолчанию —
(tab-bar-lines tool-bar-lines)для Lucid, Motif и MS-Windows (что означает, что добавление/удаление панели инструментов или вкладок там не изменяет высоту внешней рамки),(tab-bar-lines)на всех других системах окон, включая GTK+ (что означает, что изменение любого из перечисленных выше параметров, за исключениемtab-bar-lines, может изменить размер внешней рамки) иtв противном случае (что означает, что размер внешней рамки никогда не изменяется неявно, если нет поддержки системы окон).Обратите внимание, что если фрейм недостаточно велик, чтобы вместить изменение любого из перечисленных выше параметров, Emacs может попытаться увеличить фрейм, даже если этот параметр не
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/Implied-Frame-Resizing.html