Заметил черные боковые рамки в консоли Windows 10 preview (по ширине они равны скролбарам, но скролбары не видны при открытии окна Far). Не воспроизводится, если в настройках консоли отключить "Экспериментальные опции".
Alt+F9 не помогает развернуть окно на весь экран, т.к. после повторного открытия окна строка меню съезжает под нижний край экрана.
И второй странный глюк. Если выходить из Far по F10 - окно консоли закрывается быстро. А если закрывать окно консоли "крестиком" кнопкой закрыть в заголовке консоли - Far закрывается быстро, а сама консоль еще долго висит на экране с черным содержимым.
Windows 10 - определение краев консольного окна с у четом невидимых скролл-баров
Windows 10 - определение краев консольного окна с у четом невидимых скролл-баров
Last edited by agb on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан избыточный снимок экрана
Reason: Спрятан избыточный снимок экрана
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Windows 10 - определение краев консольного окна с у четом невидимых скролл-баров
О багах в "экспериментальных опциях" надо писать сюда, пока не поздно.
С нашей стороны до релиза windows 10 ничего предприниматься не будет, ибо бессмысленно.
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Windows 10 - определение краев консольного окна с у четом невидимых скролл-баров
Фар есть инструмент, а не нянька. © 2009 DrKnS
Windows 10 - определение краев консольного окна с у четом невидимых скролл-баров
HaRT, прочитал, спасибо!
По поводу сабжа - не совсем понятно - невидимые скрол-бары при запуске фара это именно баг консоли или её нормальное поведение, которое потом можно будет учесть при подгоне размера панелей..
По поводу сабжа - не совсем понятно - невидимые скрол-бары при запуске фара это именно баг консоли или её нормальное поведение, которое потом можно будет учесть при подгоне размера панелей..
-
- Posts: 1
- Joined: Thu 12 Feb, 2015 15:29
Windows 10 - определение краев консольного окна с у четом невидимых скролл-баров
Это баг, кстати, возник не по вине Windows 10. Это вылез боком старый грязный хак в interf.cpp в функции CtrlHandler:agb wrote:И второй странный глюк. Если выходить из Far по F10 - окно консоли закрывается быстро. А если закрывать окно консоли "крестиком" кнопкой закрыть в заголовке консоли - Far закрывается быстро, а сама консоль еще долго висит на экране с черным содержимым.
Code: Select all
case CTRL_CLOSE_EVENT:
Global->CloseFAR=TRUE;
Global->AllowCancelExit=FALSE;
// trick to let wmain() finish correctly
ExitThread(1);
// return TRUE;
В windows 10 немного изменили подсистему управления консолью, и теперь системный таймаут на убивание процесса не слетает при закрытии этого потока, а продолжает ожидание.
Вообще, согласно документации Windows, обработчик CtrlHandler нужен для того чтобы корректно завершить приложение в случае экстренного закрытия крестом прямо в этом обработчике или в другом потоке, но не более чем за 5 секунд, это системный таймаут на обработку события CTRL_CLOSE_EVENT, после чего процесс убивается принудительно.
Если вместо некорректного (нарушающего работу системы по обслуживанию консоли) закрытия системного треда (KernelBase.dll, кстати), поставить ожидание, например, события завершения MainThread, то в режиме работы с панелями файлов закрытие происходит нормально, без подвисаний и с сохранением состояния.
Code: Select all
// добавляем в класс global
HANDLE mainThreadFinish;
// добавляем в конструктор global
mainThreadFinish = CreateEvent(NULL, TRUE, FALSE, NULL);
// добавляем в деструктор global
SetEvent( mainThreadFinish );
// легитимизируем обработку
case CTRL_CLOSE_EVENT:
Global->CloseFAR=TRUE;
Global->AllowCancelExit=FALSE;
WaitForSingleObject( Global->mainThreadFinish, 500 );
return TRUE;
Нелады с консольным окном в Windows 10 (в Win 8 лады)
Про забавные картинки:
"Забавные картинки' можно убрать, включив legacy режим консоли.
Меняется размер консоли - срабатывает LineWrap, включённый в свойствах новой консоли.
Потом фар отрабатывает изменение размера и исправляет картинку.
Аналогичный эффект виден при ресайзе горизонтального размера окна мышкой.
Откуда задержка 10-15 секунд не знаю (у меня её нет).
Last edited by 2useven10 on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлена ссылка на исходную тему
Reason: Добавлена ссылка на исходную тему