Bug 7978

Summary: СБИС - всплывающие подсказки не видны
Product: WINE@Etersoft Reporter: Svetlana Zhukova <svzhu>
Component: Окна / фокус / перерисовкаAssignee: Сергей Гуральник <serhio>
Status: CLOSED FIXED QA Contact: Svetlana Zhukova <svzhu>
Severity: minor    
Priority: P4 CC: amorozov, baraka, kondratyuk, lav
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 502    
Attachments: Тест TTM_ADJUSTRECT

Description Svetlana Zhukova 2011-12-22 16:44:37 MSK
СБИС 2.4.43
Например ФНС - отчет  в списке, слева красный восклицательный знак.Или на пиктограмму здес же в шапке таблицы списка. При наведении мышкой мелькает подсказка.
В консоли:
err:tooltips:TOOLTIPS_WindowProc unknown msg 041f wp=00000001 lp=0032d358

посмотреть можно тут:eterhack bottle sbis/2.4.43
2.0.0-eter0.17/7
Comment 1 Сергей Гуральник 2012-01-23 14:24:13 MSK
Необработанное сообщение: 041F => WM_USER + 31 => TTM_ADJUSTRECT В TOOLTIPS_WndProc действительно отсутствует case TTM_ADJUSTRECT:
Comment 2 Сергей Гуральник 2012-01-23 15:06:12 MSK
Пробуем написать тест с использованием TTM_ADJUSTRECT. Тест собран MS VC 8.0. В консоли появляется сообщение о неизвестном сообщении. Возможно мерцание вызвано некорректным результатом, который возвращается после посылки TTM_ADJUSTRECT.
Comment 3 Сергей Гуральник 2012-01-23 17:02:25 MSK
Created attachment 2398 [details]
Тест TTM_ADJUSTRECT

Отсылает TTM_ADJUSTRECT к tooltip'у и отображает подсказку в указанном месте. Интересно, что под WinXP, w2k наблюдаются такие же мерцания как и под Wine.
Comment 4 Сергей Гуральник 2012-01-23 17:05:56 MSK
Мерцание подсказок наблюдается только в том случае, если после ее появления она оказывается под курсором. Например, если подвести указатель к нижнему краю пиктограммы колонки "Вид" в ФНС, то подсказка всплывает выше указателя и ведет себя нормально. Если же на нее поместить указатель, то она становится мерцающей.
Comment 5 Сергей Гуральник 2012-01-23 18:59:51 MSK
Создание обработчика TTM_ADJUSTRECT не убирает мерцание. Очевидно, проблема в логике работы таймеров или контроле текущего tool'a.
Comment 6 Сергей Гуральник 2012-01-24 13:26:19 MSK
При отображении подсказка позиционируется самим приложением, причем так, что курсор оказывается над ней. Подсказка сразу же получает WM_MOUSEMOVE и исчезает. Tool, видимо был создан с TTF_SUBCLASS, а это заставляет вызывать TOOLTIPS_RelayEvent как только подсказка исчезнет (Ведь tool сразу же получит WM_MOUSEMOVE). Как результат - новая попытка отображения подсказки, которая вновь исчезнет и т.д.
Comment 7 Сергей Гуральник 2012-01-24 13:33:13 MSK
Нужно скрывать подсказку только тогда, когда курсор пересекает ее границу и двигается внутрь подсказки.
Comment 8 Сергей Гуральник 2012-01-25 17:02:21 MSK
Если оставить курсор на tool'e и пошевелить им после исчезновения подсказки, то она вновь появляется. В то же время под Windows такого не наблюдается.
Comment 9 Сергей Гуральник 2012-01-25 21:19:59 MSK
Добавлен обработчик TTM_ADJUSTRECT.
Comment 10 Сергей Гуральник 2012-01-26 16:13:08 MSK
При работе СБИС под Windows подсказкам отправляется WM_MOUSEMOVE, но оно не заставляет их скрыться в отличие от Wine.Возможно происходит перехват сообщения.
Comment 11 Сергей Гуральник 2012-01-26 19:10:08 MSK
СБИС проводит сабклассинг для подсказок, но при этом некоторые WM_MOUSEMOVE передаются системной процедуре, которая тут же скрывает подсказки. Возможно под Wine вызовы старой и новой оконных процедур происходят не корректно
Comment 12 Сергей Гуральник 2012-01-30 15:56:11 MSK
В TOOLTIPS_SubclassProc обнаружен недочет. Сообщение от мыши передается непосредственно обработчику TOOLTIPS_RelayEvent. При сабклассинге tooltip'a это может вызвать проблемы, т.к. ожидается отправка соответствующего TTM_RELAYEVENT. Вызов TOOLTIPS_RelayEvent заменен на SendMessage.
Comment 13 Сергей Гуральник 2012-01-30 20:28:20 MSK
Мерцание устранено.
Comment 14 Александр Морозов 2012-02-01 22:09:27 MSK
Выставляю "Исправлена"
Comment 15 Svetlana Zhukova 2012-02-12 14:02:20 MSK
Отлично!
eterhack bottle sbis/8142
Comment 16 Svetlana Zhukova 2012-02-12 14:02:50 MSK
2.0.0-eter2.13/8