Page 1 of 2
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Fri 20 Oct, 2017 08:28
by awson
Запускаете что-нибудь консольное с длинной выдачей, давите Ctrl-O, пытаетесь прокрутить консоль назад с помощью Ctrl-Alt-PgUp.
Не работат, только дергается.
Прокрутка мышкой скроллбара работает.
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Sun 05 Nov, 2017 09:03
by awson
Еще у кого-нибудь эта проблема есть?
Если кто-нибудь из разработчиков смотрел, не мог бы он прокомментировать кратко что там?
"MS опять накосорезил с консольным API, ну их нафик, пусть сами чинят" или что?
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Sun 26 Nov, 2017 11:30
by stefanenko
Да никто не будет разбираться с инсайдерскими версиями Windows 10.
К примеру уже 3 версии подряд голый Far x64 не выгружается или валится с werfault.
Живем и ждем стабильности...
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Sun 26 Nov, 2017 12:23
by 2useven10
stefanenko wrote: ↑Sun 26 Nov, 2017 11:30Да никто не будет разбираться с инсайдерскими версиями Windows 10.
1709 уже не инсайдерская.
stefanenko wrote: ↑Sun 26 Nov, 2017 11:30К примеру уже 3 версии подряд голый Far x64 не выгружается или валится с werfault.
Живем и ждем стабильности...
Это вы о чём? На 1709 ничего подобного не наблюдаю.
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Wed 14 Feb, 2018 18:44
by awson
Решил сам посмотреть в чем дело.
Оказалось, что 1709 дополнительно генерит `WINDOW_BUFFER_SIZE_EVENT`, после чего `ProcessBufferSizeEvent` возвращает всё взад.
Т.е., оно сначала скроллится как и раньше, а потом возвращается в исходное положение (получается упомянутое дерганье).
Я себе сделал тривиальный кривой костыль (добавил глобальный флаг inScroll, который взводится в `ConsoleScrollHook` и проверяется (очищается) в `ProcessBufferSizeEvent`. У меня, вроде, работает, так что если кому надо -- просите мейнтейнеров сделать по уму.
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Thu 01 Mar, 2018 08:50
by GMax
хотелось бы, да
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Thu 01 Mar, 2018 11:33
by 2useven10
Если до багтрекера не дошли, значит хотелось не сильно.
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Thu 11 Oct, 2018 10:41
by awson
Положу-ка я этот патч сюда, просто чтоб мейнтейнерам было понятно о чем речь.
Code: Select all
diff -urN a/far/interf.cpp b/far/interf.cpp
--- a/far/interf.cpp 2018-10-01 17:43:10.507269200 +0300
+++ b/far/interf.cpp 2018-10-07 18:52:04.306438500 +0300
@@ -137,6 +137,8 @@
static SMALL_RECT InitWindowRect;
static COORD InitialSize;
+bool inScroll = false;
+
static os::event& CancelIoInProgress()
{
static os::event s_CancelIoInProgress;
@@ -192,6 +194,7 @@
// Удалить после появления макрофункции Scroll
if (Global->Opt->WindowMode && Global->WindowManager->IsPanelsActive())
{
+ inScroll = true;
switch (key())
{
case KEY_CTRLALTUP:
diff -urN a/far/interf.hpp b/far/interf.hpp
--- a/far/interf.hpp 2018-10-01 17:43:10.508268800 +0300
+++ b/far/interf.hpp 2018-10-07 18:52:04.312468400 +0300
@@ -51,6 +51,8 @@
extern SHORT PrevScrX,PrevScrY;
extern DWORD InitialConsoleMode;
+extern bool inScroll;
+
// типы рамок
enum
{
diff -urN a/far/keyboard.cpp b/far/keyboard.cpp
--- a/far/keyboard.cpp 2018-10-01 17:43:10.509269300 +0300
+++ b/far/keyboard.cpp 2018-10-07 18:53:11.814521200 +0300
@@ -699,6 +699,11 @@
static DWORD ProcessBufferSizeEvent(COORD Size)
{
+ if (inScroll) {
+ inScroll = false;
+ return KEY_NONE;
+ }
+
if (WindowState.is_restored())
{
SaveNonMaximisedBufferSize(Size);
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Thu 11 Oct, 2018 11:08
by DrKnS
WINDOW_BUFFER_SIZE_EVENT у вас генерируется при вызове SetConsoleWindowInfo, я правильно понимаю?
Мы, конечно, можем накостылить, вашим методом или иначе, но это же явный баг - меняется не размер буфера, а его относительная позиция, WINDOW_BUFFER_SIZE_RECORD.dwSize будет тем же.
Напишите им на багтрекер (а мы поддержим), может нормально исправят (ну или подтвердят, что это теперь такая фича).
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Thu 11 Oct, 2018 12:10
by awson
Я, честно говоря, не копал, кто там начал вдруг `WINDOW_BUFFER_SIZE_EVENT` генерить, я просто увидел, что оно возникло out of nowhere, и решил, не вдаваясь в детали, проверить что будет, если я его вот так выпилю.
Если б что-то сломалось, я бы дальше стал смотреть, но ничего не сломалось.
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Thu 11 Oct, 2018 12:11
by awson
У меня времени до конца этой недели совсем мало.
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Thu 11 Oct, 2018 22:59
by DrKnS
Поставил эту вашу windows 10, проверил, предположение подтвердилось, написал им багрепорт.
Господа, предлагаю сходить и лайкнуть https://github.com/Microsoft/console/issues/281, дабы привлечь внимание Microsoft к проблеме.
Рано или поздно все на это наступим.
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Fri 12 Oct, 2018 00:19
by 2useven10
Радует что оба репорта признаны багами и помечены bug
conhost
.
Не радует, что там порядка 45 репортов с такими метками.
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Sat 10 Nov, 2018 13:11
by ramzes_III
Ах вот в чём дело, сейчас задался целью настроить прокрутку, все клавиши перепробовал - не работает, скачал макрос - не работает
Code: Select all
Macro
{
description="Прокрутка панелей или UserScreen";
area="Shell";
key="MsWheelUp";
action=function()
if Area.Shell and (APanel.Visible or PPanel.Visible) then Keys("MsWheelUp") else Far.Window_Scroll(-3) end
end;
}
Macro
{
description="Прокрутка панелей или UserScreen";
area="Shell";
key="MsWheelDown";
action=function()
if Area.Shell and (APanel.Visible or PPanel.Visible) then Keys("MsWheelDown") else Far.Window_Scroll(3) end
end;
}
Уж стал сомневаться в своём уровне интеллекта. А оно вононо что. Багу лайкнул.
В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш
Posted: Sat 10 Nov, 2018 13:15
by ramzes_III
А кто-нибудь знает, как сделать чтобы в Windows 10 в консоли в Far в полноэкранном режиме не скрывалась полоса прокрутки? Чтобы хотя бы так скроллить.