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

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

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

Post by awson »

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

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

Прокрутка мышкой скроллбара работает.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

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

Post by awson »

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

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

"MS опять накосорезил с консольным API, ну их нафик, пусть сами чинят" или что?
stefanenko
Posts: 142
Joined: Sun 20 Jun, 2010 12:37
Has thanked: 49 times
Been thanked: 7 times

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

Post by stefanenko »

Да никто не будет разбираться с инсайдерскими версиями Windows 10.
К примеру уже 3 версии подряд голый Far x64 не выгружается или валится с werfault.
Живем и ждем стабильности...
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post 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 ничего подобного не наблюдаю.
Last edited by 2useven10 on Sun 26 Nov, 2017 12:23, edited 1 time in total.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

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

Post by awson »

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

Оказалось, что 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.
GMax
Posts: 165
Joined: Wed 10 Aug, 2005 09:20
Has thanked: 1 time

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

Post by GMax »

хотелось бы, да
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

Если до багтрекера не дошли, значит хотелось не сильно.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

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

Post 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);
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

WINDOW_BUFFER_SIZE_EVENT у вас генерируется при вызове SetConsoleWindowInfo, я правильно понимаю?
Мы, конечно, можем накостылить, вашим методом или иначе, но это же явный баг - меняется не размер буфера, а его относительная позиция, WINDOW_BUFFER_SIZE_RECORD.dwSize будет тем же.
Напишите им на багтрекер (а мы поддержим), может нормально исправят (ну или подтвердят, что это теперь такая фича).
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

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

Post by awson »

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

Если б что-то сломалось, я бы дальше стал смотреть, но ничего не сломалось.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

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

Post by awson »

У меня времени до конца этой недели совсем мало.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

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

Господа, предлагаю сходить и лайкнуть https://github.com/Microsoft/console/issues/281, дабы привлечь внимание Microsoft к проблеме.
Рано или поздно все на это наступим.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

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

Post by 2useven10 »

Радует что оба репорта признаны багами и помечены bug conhost.
Не радует, что там порядка 45 репортов с такими метками.
Last edited by 2useven10 on Fri 12 Oct, 2018 00:20, edited 2 times in total.
ramzes_III
Posts: 10
Joined: Sun 03 Nov, 2013 08:44
Been thanked: 1 time

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

Post 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;
}
Уж стал сомневаться в своём уровне интеллекта. А оно вононо что. Багу лайкнул.
ramzes_III
Posts: 10
Joined: Sun 03 Nov, 2013 08:44
Been thanked: 1 time

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

Post by ramzes_III »

А кто-нибудь знает, как сделать чтобы в Windows 10 в консоли в Far в полноэкранном режиме не скрывалась полоса прокрутки? Чтобы хотя бы так скроллить.
Post Reply

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