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

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

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

Post by andr3w » Fri 08 Aug, 2008 06:42

В 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: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 3 times

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

Post by Skirda » Fri 08 Aug, 2008 07:41

макросы?
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 » Fri 08 Aug, 2008 15:30

Можно пояснить? Как здесь могут помочь макросы?

g_max
Posts: 88
Joined: Mon 20 Mar, 2006 15:19
Location: Винница

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

Post by g_max » Fri 08 Aug, 2008 15:58

andr3w wrote:Можно пояснить? Как здесь могут помочь макросы?
Не помочь, а проверь, есть ли у тебя в автозапуске макрос, который жмет Alt-F9.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 3 times

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

Post by Skirda » Fri 08 Aug, 2008 16:02

Обычный такой автостартующий макрос, "нажимающий" 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 » Fri 08 Aug, 2008 22:40

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

Не знаю, может ли Far починить себя сам после возврата от скринсейвера или лока, но то, что событие ему зашлется, которое можно попытаться обработать, это факт. Событий там несколько, но обработка-то одна на все )) Если дойдут руки, надо будет поэкспериментировать с консольным окном, благо с нуля писать не придется - Open Source рулит ;-)

AlexII
Posts: 265
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 82 times
Contact:

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

Post by AlexII » Sat 09 Aug, 2008 09:19

Не оно: Не совсем коректная максимизация окна?!
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 » Sat 09 Aug, 2008 10:58

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

Кстати, достаточно DeltaXY=0xffff, т.е. -1 только по X.

User avatar
zg
zero-gravity
Posts: 5497
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 73 times
Contact:

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

Post by zg » Sat 09 Aug, 2008 13:23

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

ps: у меня кстати при локе такого не происходит. а вот при смене видеопараметров или при запуске некоторых фулскрин приложений происходит.

AlexII
Posts: 265
Joined: Mon 10 Apr, 2006 00:53
Location: станица Григорополисская
Has thanked: 82 times
Contact:

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

Post by AlexII » Tue 12 Aug, 2008 11:33

DfDf wrote:Оно. Почти ) Т.к. если после этого окно максимзировать вручную, то все равно скроллеры появятся.
У меня с установленным DeltaXY — нет.
DfDf wrote:Кстати, достаточно DeltaXY=0xffff, т.е. -1 только по X.
Кому как.

IVB
Posts: 17
Joined: Thu 26 Mar, 2009 10:26

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

Post by IVB » Thu 26 Mar, 2009 12:33

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

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

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

User avatar
zg
zero-gravity
Posts: 5497
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 73 times
Contact:

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

Post by zg » Thu 26 Mar, 2009 12:51

IVB wrote:скорее всего, самим ФАРом, т.к. другие окна с такими же отрицательными координатами своих координат не меняют.
в эти другие окна при эксперименте входила например обычная консоль?

IVB
Posts: 17
Joined: Thu 26 Mar, 2009 10:26

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

Post by IVB » Thu 26 Mar, 2009 13:28

Не входила.

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

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

Пока что приходится делать это руками, что не просто раздражает, а убивает наповал :(

UJvu
Posts: 156
Joined: Tue 03 May, 2005 15:38
Location: Севастополь
Contact:

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

Post by UJvu » Thu 26 Mar, 2009 14:31

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

IVB
Posts: 17
Joined: Thu 26 Mar, 2009 10:26

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

Post by IVB » Thu 26 Mar, 2009 14:52

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

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

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

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

User avatar
Александр Кряжев
Posts: 882
Joined: Sun 03 Dec, 2006 10:09
Location: Москва
Has thanked: 2 times
Contact:

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

Post by Александр Кряжев » Fri 27 Mar, 2009 05:54

Как вариант, можно настроить окно так, чтобы оно в обычном не развёрнутом состоянии занимало весь экран.

Фар - маргинальный продукт. (c) zg

Post Reply

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