Скроллеры после разблокирования компьютера (Windows XP)

Здесь можно сообщить о найденных багах в Far.
Post Reply
andr3w
Posts: 6
Joined: Fri 08 Aug, 2008 06:16

Скроллеры после разблокирования компьютера (Windows XP)

Post by andr3w »

В Windows XP всегда наблюдалась проблема, описанная здесь: после разблокирования компьютера на окне появлялись скроллеры, если оно было развернуто на весь экран. У меня разрешение экрана 1280*1024, и максимальный размер окна при шрифте Lucida Console 14 оказывается равным 160*69 -- так полуается, если нажать Alt-F9. Чтобы решить проблему, я установил размер 159*69, -- скроллеры появляться перестали.

Но теперь Far стал автоматически "нажимать" Alt-F9 при запуске. Пришлось убрать в ярлыке запуск в максимизированном окне, но и это помогает не всегда -- так или иначе приходилось сталкиваться с появлением скроллеров. Нельзя ли сделать это автоматическое Alt-F9 опциональным? Я не нашел таких параметров в настройках. Пока пришлось откатиться на версию 1.71 alpha 1 build 2104 -- там этого еще не было.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by Skirda »

макросы?
We are the Borg. You will be assimilated.
So Say We All!
andr3w
Posts: 6
Joined: Fri 08 Aug, 2008 06:16

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by andr3w »

Можно пояснить? Как здесь могут помочь макросы?
g_max
Posts: 88
Joined: Mon 20 Mar, 2006 15:19
Location: Винница

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by g_max »

andr3w wrote:Можно пояснить? Как здесь могут помочь макросы?
Не помочь, а проверь, есть ли у тебя в автозапуске макрос, который жмет Alt-F9.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by Skirda »

Обычный такой автостартующий макрос, "нажимающий" Alt-F9
А запуск far /p (т.е. без плагинов) как себя ведет?
Хмм... хотя какого черта.... в ярлыке запуска ФАРа небось стоит развернуть на весь экран?
We are the Borg. You will be assimilated.
So Say We All!
DfDf
Posts: 120
Joined: Mon 24 Mar, 2008 15:40

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by DfDf »

Поскольку глюк XP (вплоть до SP3) достал, решил поэкспериментировать. Короче говоря, скроллеры не появятся, если размер консольного окна хотя бы на пару пикселей (по любому из измерений) меньше размера экрана. Т.е. обход глюка - снимать в ярлыке Maximized, и ставить размер окна на 1 меньше максимального (хоть по вертикали, хоть по горизонтали). Какой стоит шрифт - неважно, хоть векторный, хоть растровый. Гады они все-таки в Microsoft... ;-)

Не знаю, может ли Far починить себя сам после возврата от скринсейвера или лока, но то, что событие ему зашлется, которое можно попытаться обработать, это факт. Событий там несколько, но обработка-то одна на все )) Если дойдут руки, надо будет поэкспериментировать с консольным окном, благо с нуля писать не придется - Open Source рулит ;-)
AlexII
Posts: 270
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 147 times
Contact:

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by AlexII »

Не оно: Не совсем коректная максимизация окна?!
Skirda wrote:…сдается ЭТО уже было (undocumented information)

Попробуй следующее:

Code: Select all

Far\Screen/DeltaXY:REG_DWORD (default=0)
DeltaXY - это структура COORD.
Компоненты X и Y добавляются к результату, который возвращает функция GetLargestConsoleWindowSize(). В коде это выглядит примерно так:

Code: Select all

COORD coordScreen;
coordScreen = GetLargestConsoleWindowSize(hConOut);
coordScreen.X+=DeltaXY.X;
coordScreen.Y+=DeltaXY.Y;
Т.е. надо понимать, что X и Y это не в пискселах, а в тикселах: т.е. изменение будет на размер шрифта, выставленного для окна ФАРа.
Во всяком случае, после перехода на XP, у меня сейчас выставлено:

Code: Select all

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\Screen]
"DeltaXY"=dword:ffffffff
P.S. Есть и автостартующий макрос, содержащий Alt-F9.
DfDf
Posts: 120
Joined: Mon 24 Mar, 2008 15:40

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by DfDf »

Оно. Почти ) Т.к. если после этого окно максимзировать вручную, то все равно скроллеры появятся. Да и некрасиво - хочется действительно Maximized, привычка, особенно на небольших экранах, где 800*600. Поэтому и пишу, что надо посмотреть в код и понять, можно ли написать workaround этого глюка XP. Т.е. после возврата из лока/скринсейвера надо это событие обрабатывать, возвращая окну правильные размеры, при условии, что окно было максимизировано на момент лока/скринсейвера. Уф. :)

Кстати, достаточно DeltaXY=0xffff, т.е. -1 только по X.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by zg »

DfDf wrote:Поэтому и пишу, что надо посмотреть в код и понять, можно ли написать workaround этого глюка XP. Т.е. после возврата из лока/скринсейвера надо это событие обрабатывать, возвращая окну правильные размеры, при условии, что окно было максимизировано на момент лока/скринсейвера. Уф. :)
реализуемо плагином, так что дерзай :)

ps: у меня кстати при локе такого не происходит. а вот при смене видеопараметров или при запуске некоторых фулскрин приложений происходит.
AlexII
Posts: 270
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 147 times
Contact:

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by AlexII »

DfDf wrote:Оно. Почти ) Т.к. если после этого окно максимзировать вручную, то все равно скроллеры появятся.
У меня с установленным DeltaXY — нет.
DfDf wrote:Кстати, достаточно DeltaXY=0xffff, т.е. -1 только по X.
Кому как.
IVB
Posts: 20
Joined: Thu 26 Mar, 2009 10:26
Has thanked: 1 time

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by IVB »

Если кто-то все-таки возьмется решить эту проблему раз и навсегда:

До включения скринсейвера или блокировки консоли левый верхний угол окна ФАРа, развернутого на весь экран, имеет отрицательные координаты (как правило, -4,-4). После отключения скринсейвера или разблокировки консоли левый верхний угол окна позиционируется в точку 0,0 - скорее всего, самим ФАРом, т.к. другие окна с такими же отрицательными координатами своих координат не меняют.

Для "лечения" нужно проверить, как ФАР обрабатывает, например, включение/выключение скринсейвера. Если он что-то делает с координатами своего окна - исправить. Если ничего - тогда нужно принудительно подвинуть окно на прежние координаты, после чего "развернуть на весь экран".
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by zg »

IVB wrote:скорее всего, самим ФАРом, т.к. другие окна с такими же отрицательными координатами своих координат не меняют.
в эти другие окна при эксперименте входила например обычная консоль?
IVB
Posts: 20
Joined: Thu 26 Mar, 2009 10:26
Has thanked: 1 time

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by IVB »

Не входила.

Повторил эксперимент - консоль "сдвигается" так же, как и ФАР. Вывод: окно сдвигается не ФАРом.

К сожалению, это никак не влияет на способ решения проблемы (сдвинуть свое окно на прежнее место и повторно "развернуться на весь экран", чтобы пропали скроллеры).

Пока что приходится делать это руками, что не просто раздражает, а убивает наповал :(
UJvu
Posts: 156
Joined: Tue 03 May, 2005 15:38
Location: Севастополь
Contact:

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by UJvu »

IVB wrote:убивает наповал :(
Нажать два раза Alt+F9?
IVB
Posts: 20
Joined: Thu 26 Mar, 2009 10:26
Has thanked: 1 time

Re: Скроллеры после разблокирования компьютера (Windows XP)

Post by IVB »

UJvu wrote:
IVB wrote:убивает наповал :(
Нажать два раза Alt+F9?
И сдвинуть окно на прежнее место.

Если этого не сделать - слева между краем экрана и внутренней границей консольного окна получается "зазор" примерно пикселов 10, который меня убивает еще сильнее, чем необходимость вручную перемещать окно ФАРа влево/вверх.

А если учесть, что у меня обычно открыто 5-6 окон с ФАРом...

Ненавижу M$ :cry:
Post Reply

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