Не совсем коректная максимизация окна.

Здесь можно сообщить о найденных багах в Far.
Docent1
Posts: 561
Joined: Thu 31 Mar, 2005 23:13
Been thanked: 1 time

Post by Docent1 » Wed 11 Jul, 2007 22:56

Latest post of the previous page:

Garthower
Установи обновление Windows6.0-KB934008-x86.msu
http://thehotfixshare.net/download/inde ... ral/Vista/
Docent1

User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower » Tue 24 Jul, 2007 13:20

Docent1
Смог бы, если бы у меня была Vista x32. Но у меня х64 ОС. Аналогичного апдейта для х64 я не нашёл :(

User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower » Fri 03 Aug, 2007 15:08

Skirda wrote:Garthower, ну если подскажишь, как открытым виндовым АПИ узнать что за хрень у нас с интерфейсом (аэро или XеP`ово-бредовая фантазия с бочкообразными пимпами или обычный спартанский интерфейс), то... велика вероятность (и если ОНО действительно работает), что корректировка (читай - очередная заплатка к виндам) на интерфейс... будет.
Вот, нарыл, даже работает. Чиста вынь АПИ и ничего более ;) Работать будет только на вистах.
Attachments
TestData.7z
(2.31 KiB) Downloaded 194 times

User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower » Tue 07 Aug, 2007 08:22

Skirda
Смотрел на примеры? Там есть одна API, называется DwmIsCompositionEnabled типа BOOL из DWMAPI.DLL, которая и возвращает, у нас сейчас Aero или спартанский режим десктопа. Может, таки будет заплатка на Билли ОС?

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

Post by Skirda » Tue 07 Aug, 2007 12:43

Garthower, для XP & Win2k3 нечто подобное есть?

User avatar
DrKnS
Posts: 5103
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 184 times

Post by DrKnS » Tue 07 Aug, 2007 12:51

Skirda
Если оно таки будет, то прошу иметь в виду, что глючит не у всех, т.е. хорошо бы эту "заплатку" сделать опциональной.

User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower » Tue 07 Aug, 2007 13:17

Skirda
Нет, для ХР и Win2k нет такой API. Да и зачем она нужна? Ведь проблема есть только на висте, да и то, если виста не серверная (у меня на работе стоят бизнес и хоум обоих платформ, на всех есть такая трабла).

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

Post by Skirda » Tue 07 Aug, 2007 13:17

DrKnS, да я проще сделаю, через TI. Сами будете задавать на сколько при максимизации уменьшать окно.
Правда криво будет выглядеть... но тут уж...
Garthower, на мантис вишь рисуй...

User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower » Tue 07 Aug, 2007 13:23

Skirda
Сори за тормознутость, а где находится мантис (всмысле урл). Я никогда туда ещё ничего не постил :oops:

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

Post by Skirda » Tue 07 Aug, 2007 14:02


User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower » Wed 08 Aug, 2007 07:48

Skirda
Спасибо. Создал тикет, ID 311.

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

Post by Skirda » Wed 08 Aug, 2007 18:19

Garthower, сдается ЭТО уже было (undocumented information) :oops:

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

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 это не в пискселах, а в тикселах: т.е. изменение будет на размер шрифта, выставленного для окна ФАРа.
Если нужно иначе - хакай Билли :D

User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower » Thu 09 Aug, 2007 07:46

Skirda
Пасиб огромное! Работает :) Теперь всё чики-пики ;)

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

Post by Skirda » Thu 09 Aug, 2007 08:15

Garthower, тогда будь так добр - поставь "решен" на мантисе для 311-го

User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower » Thu 09 Aug, 2007 08:31

Skirda
Done

User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower » Thu 09 Aug, 2007 13:04

Есть такой вопрос - когда тачку залочил, потом разлочил, FAR делает себе ресайз? Или только один раз, при нажатии ALT-F9?

User avatar
Zeroes
Мультикопипастер Броадкастер
Posts: 536
Joined: Wed 16 Mar, 2005 20:53
Location: Gomel \ Belarus
Contact:

Post by Zeroes » Thu 09 Aug, 2007 16:03

Garthower

Это ты про проблему что после разлочки компа FAR если был максимизирован появляются линейки прокрутки? это кстати не тока проблема фара а вообще консольных окон.

Меня это тоже бесит :) что-то сейчас проверил на xpsp2 сейчас не воспроизводится, хмм странно.

Я эту проблему у себя решил так: сделал задачу для NNCRON

<%
: RestoreConsoleW GetForegroundWindow TO PREV-ACTIVE-HWND
FOR-WINDOWS: "ConsoleWindowClass"
RE-MATCH: "%FOUND-WINDOW%" "/- Far$/" NOT
IF
WIN-RESTORE: "%FOUND-WINDOW%"
WIN-MAXIMIZE: "%FOUND-WINDOW%"
ELSE
WIN-SEND-KEYS: "%WIN-HWND%" "@{F9}"
WIN-SEND-KEYS: "%WIN-HWND%" "@{F9}"
PAUSE: 200
THEN
;FOR-WINDOWS
WIN-ACTIVATE: %PREV-ACTIVE-HWND%
;
%>


#( CLASSIC-TASK-#-RestoreConsoleWindow
SingleInstance
WTSWatchUnlock
Action:
SWHide NormalPriority
S" TASK: %CUR-TASK-NAME%" CRON-LOG
RestoreConsoleW
)#
--- Zeroes & Ones ---

Post Reply

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