Re: Размер терминала в Emacs.
Dmitrii Kashin -> debian-russian@lists.debian.org @ Mon, 21 Jan 2013 14:49:51 +0400:
>> >> > Потом, когда активируется буфер, его окно отображается уже в реальный
>> >> > размер, и терминальной программе внутри шлется SIGWINCH. rtorrent на
>> >> > него, вероятно, реагирует адекватно, т.е. перерисовывается под новый
>> >> > размер (куда именно уходит пара секунд - вопрос отдельный, я на него
>> >> > сейчас ответить не готов), а newsbeuter, вероятно, нет.
>> >>
>> >> Была такая мысль. Но, как ни странно, если открыть newsbeuter в urxvt,
>> >> то он будет адекватно реагировать на изменение размера окна. Стало быть,
>> >> SIGWINCH он все-таки адекватно обрабатывает.
>>
>> AG> Подозреваю, что в случае запуска через emacs этот сигнал для newsbeuter
>> AG> приходит настолько быстро, что nb ещё не закончил инициализацию, потому
>> AG> обрабатывает его некорректно. В интерактивном режиме за счёт
>> AG> относительной медлительности пользователя сигнал приходит гораздо позже.
>>
>> В оригинальном описании проблемы при ручной активации буфера не
>> происходит перерисовки. А у rtorrent происходит, но с задержкой. А в
>> то, что newsbeuter не запускается внутри демона, пока буфер не
>> активирован, мне что-то не верится.
DK> И правильно не верится. Когда переключаюсь на буфер newsbeuter - там
DK> виден уже его curses-интерфейс. Так как до появления интерфейса ему
DK> обычно при штатном запуске из терминала требовалось несколько секунд,
DK> чтобы загрузить кэш, запускается он, судя по всему, гораздо раньше.
А вот знаешь, что я могу предположить? Как известно, доставка сигналов
устроена так, что за один раз можно принять только один сигнал (из тех,
для которых установлены обработчики, кажется - на дефолтную обработку и
игнорирование это не распространяется, но тут боюсь соврать). Поэтому,
если почти одновременно будут присланы два обрабатываемых сигнала, то
один потеряется. А emacs вполне может при начальном открытии окна
посылать и несколько сигналов, и наверняка - практически одновременно.
В качестве эксперимента могу предложить послать newsbeuter, запущенному
внутри емакса, SIGWINCH вручную, kill'ом. Если отреагирует адекватно,
то можно копнуть в эту сторону.
Reply to: