Summary: | Проверить откаченный патч | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Виталий Перов <vitperov> |
Component: | Окна / фокус / перерисовка | Assignee: | Константин Кондратюк <kondratyuk> |
Status: | CLOSED FIXED | QA Contact: | Константин Кондратюк <kondratyuk> |
Severity: | trivial | ||
Priority: | P5 | CC: | kondratyuk |
Version: | 1.1 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 42, 5477, 5618 |
Description
Виталий Перов
2010-09-27 14:06:01 MSD
Бага решалась мной для Визардсофта. Видимо, исправил я раньше, чем записал в багзиллу. Кстати, патч отправлялся в winehq, тогда же, в апреле. Его проигнорировали, как обычно. Заключалась бага в том, что границы MDI-окон при растягивании устанавливались по относительным координатам, а должны устанавливаться по глобальным. Кроме того, граница "тянулась" дальше разрешённого предела. Точно проявлялось в программе DeliverWIZARD, могу проверить на ней как-нибудь, если не срочно и на другом софте у вас не проявится. Спасибо за информацию! Нет, совсем не срочно. Насколько я вижу по коду, все 3 патча (все оформлял и присылал я) не теряют актуальности. Что делает эта связка патчей: 1) Обработка mdi-окнами сообщения WM_MOVING (нет в wwo) 2) Правильная обработка WM_SIZING (в экранных, а не оконных координатах) 3) Правильная обработка курсора при растягивании (если курсор вышел за пределы, установленные для окна, изменение размеров не вызывается, пока он не вернётся в "корректную" область) По-хорошему, эти патчи бы ещё раз заслать в winehq. Только как на них тесты написать, не знаю. Переделал патч. Приложил в eterwine. Требуется проверить. Дополнительная информация: [17:06:22] <Konstantin Kondratyuk> Смысл в том, что при изменении размеров окна программа может реагировать на это изменение. Типа "нее, ни фига, я дальше не буду двигать границу окна, мне программист написал, что меньше 200 пикселей окно быть не может" Это делается с помощью SC_SIZE, SC_MOVE и ещё каких-то уведомлений А в этом коде рисуется рамка и само окно (потом), с учётом того, что позволяет программа Не рисуется, а считается Вот, я понял, как уточнить, что делается в исправляемом куске кода! http://msdn.microsoft.com/en-us/library/ms632647(VS.85).aspx WM_SIZING Message Sent to a window that the user is resizing. By processing this message, an application can monitor the size and position of the drag rectangle and, if needed, change its size or position. Патч оставляем в таком виде. Интересно. Принимаю своё же решение :) |