В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Здесь можно сообщить о найденных багах в Far.
Post Reply
awson
Posts: 52
Joined: Fri 11 Sep, 2009 13:22
Been thanked: 1 time

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by awson » Fri 20 Oct, 2017 08:28

Запускаете что-нибудь консольное с длинной выдачей, давите Ctrl-O, пытаетесь прокрутить консоль назад с помощью Ctrl-Alt-PgUp.

Не работат, только дергается.

Прокрутка мышкой скроллбара работает.

awson
Posts: 52
Joined: Fri 11 Sep, 2009 13:22
Been thanked: 1 time

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by awson » Sun 05 Nov, 2017 09:03

Еще у кого-нибудь эта проблема есть?

Если кто-нибудь из разработчиков смотрел, не мог бы он прокомментировать кратко что там?

"MS опять накосорезил с консольным API, ну их нафик, пусть сами чинят" или что?

stefanenko
Posts: 82
Joined: Sun 20 Jun, 2010 12:37
Has thanked: 9 times
Been thanked: 2 times

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by stefanenko » Sun 26 Nov, 2017 11:30

Да никто не будет разбираться с инсайдерскими версиями Windows 10.
К примеру уже 3 версии подряд голый Far x64 не выгружается или валится с werfault.
Живем и ждем стабильности...

2useven10
Posts: 3598
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 3 times
Been thanked: 142 times

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by 2useven10 » Sun 26 Nov, 2017 12:23

stefanenko wrote:
Sun 26 Nov, 2017 11:30
Да никто не будет разбираться с инсайдерскими версиями Windows 10.
1709 уже не инсайдерская.
stefanenko wrote:
Sun 26 Nov, 2017 11:30
К примеру уже 3 версии подряд голый Far x64 не выгружается или валится с werfault.
Живем и ждем стабильности...
Это вы о чём? На 1709 ничего подобного не наблюдаю.
Last edited by 2useven10 on Sun 26 Nov, 2017 12:23, edited 1 time in total.

awson
Posts: 52
Joined: Fri 11 Sep, 2009 13:22
Been thanked: 1 time

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by awson » Wed 14 Feb, 2018 18:44

Решил сам посмотреть в чем дело.

Оказалось, что 1709 дополнительно генерит `WINDOW_BUFFER_SIZE_EVENT`, после чего `ProcessBufferSizeEvent` возвращает всё взад.

Т.е., оно сначала скроллится как и раньше, а потом возвращается в исходное положение (получается упомянутое дерганье).

Я себе сделал тривиальный кривой костыль (добавил глобальный флаг inScroll, который взводится в `ConsoleScrollHook` и проверяется (очищается) в `ProcessBufferSizeEvent`. У меня, вроде, работает, так что если кому надо -- просите мейнтейнеров сделать по уму.
Last edited by awson on Wed 14 Feb, 2018 18:49, edited 2 times in total.


2useven10
Posts: 3598
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 3 times
Been thanked: 142 times

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by 2useven10 » Thu 01 Mar, 2018 11:33

Если до багтрекера не дошли, значит хотелось не сильно.

awson
Posts: 52
Joined: Fri 11 Sep, 2009 13:22
Been thanked: 1 time

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by awson » Thu 11 Oct, 2018 10:41

Положу-ка я этот патч сюда, просто чтоб мейнтейнерам было понятно о чем речь.

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);

User avatar
DrKnS
Posts: 4940
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 164 times

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by DrKnS » Thu 11 Oct, 2018 11:08

WINDOW_BUFFER_SIZE_EVENT у вас генерируется при вызове SetConsoleWindowInfo, я правильно понимаю?
Мы, конечно, можем накостылить, вашим методом или иначе, но это же явный баг - меняется не размер буфера, а его относительная позиция, WINDOW_BUFFER_SIZE_RECORD.dwSize будет тем же.
Напишите им на багтрекер (а мы поддержим), может нормально исправят (ну или подтвердят, что это теперь такая фича).

awson
Posts: 52
Joined: Fri 11 Sep, 2009 13:22
Been thanked: 1 time

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by awson » Thu 11 Oct, 2018 12:10

Я, честно говоря, не копал, кто там начал вдруг `WINDOW_BUFFER_SIZE_EVENT` генерить, я просто увидел, что оно возникло out of nowhere, и решил, не вдаваясь в детали, проверить что будет, если я его вот так выпилю.

Если б что-то сломалось, я бы дальше стал смотреть, но ничего не сломалось.

awson
Posts: 52
Joined: Fri 11 Sep, 2009 13:22
Been thanked: 1 time

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by awson » Thu 11 Oct, 2018 12:11

У меня времени до конца этой недели совсем мало.

User avatar
DrKnS
Posts: 4940
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 164 times

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by DrKnS » Thu 11 Oct, 2018 22:59

Поставил эту вашу windows 10, проверил, предположение подтвердилось, написал им багрепорт.

Господа, предлагаю сходить и лайкнуть https://github.com/Microsoft/console/issues/281, дабы привлечь внимание Microsoft к проблеме.
Рано или поздно все на это наступим.

2useven10
Posts: 3598
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 3 times
Been thanked: 142 times

В Windows 10 1709 (FCU) отвалилась прокрутка консоли с помощью горячих клавиш

Post by 2useven10 » Fri 12 Oct, 2018 00:19

Радует что оба репорта признаны багами и помечены bug conhost.
Не радует, что там порядка 45 репортов с такими метками.
Last edited by 2useven10 on Fri 12 Oct, 2018 00:20, edited 2 times in total.

Post Reply

Return to “Глюки и баги”