Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 3913 - Новое свойство(а) окон для старых WM (NXClient for Windows) - версия вайна, различение MDI окон.   Make a simular bug
Summary: Новое свойство(а) окон для старых WM (NXClient for Windows) - версия вайна, р...
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Окна / фокус / перерисовка (show other bugs)
Version: 1.0.10
Hardware: PC Windows
: P5 enhancement
Target Milestone: ---
Assignee: Илья Шпигорь
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
In work:
Reported: 2009-05-06 02:44 MSD by dimbor
Modified: 2009-12-17 12:25 MSK (History)
2 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments
[PATCH 1/2] (3.58 KB, patch)
2010-11-18 03:58 MSK, Илья Шпигорь
Details | Diff
[PATCH 2/2] (2.78 KB, patch)
2010-11-18 03:58 MSK, Илья Шпигорь
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description dimbor 2009-05-06 02:44:48 MSD
Обобщая предыдущую переписку по этому вопросу:
  В режиме rootless nx-клиента (Windows), для некоторых MDI окон вайна создаются отдельные X-окна. Например "Календарь", "Калькулятор", "Удаление помеченных объектов" в 1с77. Задание их стиля оформления проблем не вызывает - однозначно определяется пустым decoration из _MOTIF_WM_HINTS. Имеется проблема установки им modeless. Сейчас их идентификация проводится по наличию непустого _NET_WM_NAME при пустом decoration. Передача в каком-нибудь свойстве dwStyle&dwExStyle (WS_EX_MDICHILD) действительно упростит их однозначное определение.
 Версию же вайна прошу для _всех_ окон по двум причинам:
Первая - особенности технологии nx заставляют для удобства перетаскивания MDI окон делать им fake-заголовок и перехватывать начало/конец перетаскивания. Этот фокус работает с MDI 1.0.9/10, но сбоит под 1.0.8. Универсально решить не получается, поэтому сейчас на RX выкладываются две версии клиента (тек. 13.5, 13.6)
Вторая - отсутствие свойства WM_TRANSIENT_FOR у списков: выбора режима в окне запуска 1с, выбора пользователя ИБ, принтера ..etc. Это вызывает нарушение z-порядка окон (переключение окон при развернутом списке) и ощутимые неудобства.
Попытка компенсировать сделана, но не факт, что при обновлении вайна все будет работать также. Т.к. тоже чистое шаманство по косвенным признакам. А наличие свойства версии, пусть даже пустого, позволит такие списки отлавливать и держать наверху.
Comment 1 Илья Шпигорь 2009-05-14 14:55:43 MSD
Created attachment 1182 [details]
[PATCH 1/2]

Патч #1
Comment 2 Илья Шпигорь 2009-05-14 14:56:16 MSD
Created attachment 1183 [details]
[PATCH 2/2]

Патч #2
Comment 3 Илья Шпигорь 2009-05-14 15:06:00 MSD
Приложил к баге патчи. Устроит ли такое решение?

Эти стили можно получить так:

1) Style/exStyle

LONG *info;
...
XGetWindowProperty( display, data->whole_window, XInternAtom(display, "WM_WINE_STYLE", True), 0, sizeof(LONG), False, AnyPropertyType, &type, &format, &count, &remaining, (unsigned char **)&info );

2) версия wine

char *ver;
...
XGetWindowProperty( display, data->whole_window, XInternAtom(display, "WM_WINE_VER", True), 0, 16, False, AnyPropertyType, &type, &format, &count, &remaining, (unsigned char **)&ver ));