Re[24]: Или бага, или sort() от меня чего-то ждет
От: Scorpion1105 Россия  
Дата: 13.10.16 11:56
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>>>Такое впечатление что у тебя где-то вызов SciterGetMin/MaxWidth/Height() где-то воткнут не по делу.


S>>Воткнут, да. Но казалось бы, что по делу — реакция на WM_GETMINMAXINFO для ограничения минимального размера диалога:


CS>А почему этот код у тебя вызывается по mouse move?


Так в том-то и дело, что не вызывается
Под отладчиком проверил — в SciterGetMinWidth попадаем только при инициализации диалога плюс пару раз в процессе из обработчика WM_GETMINMAXINFO (пока делаются MoveWindow и т.п.).
Дальше, ресайз диалога, опять попадаем в SciterGetMinWidth (через WM_GETMINMAXINFO), отключаю брейк-поинты, заврешается ресайз, включаю обратно.
Как только курсор попадает в область widget / table получается обсуждаемый эффект, но точки останова в SciterGetMinWidth ни разу не срабатывают при этом.
Вот как-то так.

--
Вырезал всякое лишнее из реализации (по факту — это доработка dilaog из HTMLayout SDK), добавил вот эти два файла в plain-win проект.
Вызов:
gui::scdialog dlg (hWnd, WS_SIZEBOX);
dlg.ShowModal(L"res:size_test.htm");


Проблема воспроизводится, можно проверить.

--
Есть workaroud, конечно — к SciterGetMinWidth/Height() единственное обращение делается в on_WM_INITDIALOG, значения запоминаются. В on_WM_GETMINMAXINFO используются сохраненные значения, без обращений к SciterGetMinWidth/Height(), тогда паразитных ресайзов не наблюдается. Тем не менее, не понятно, почему так...

--
S>>Вопрос по инспектору — он совсем не умеет показывать markup для контента, загруженного через SciterLoadHtml? Или можно как-то?
S>>Так получается, что всё показывает — DOM, внешние css, картинки и пр., а саму страницу нет.

И вот этот вот вопрос еще актуален, если не затруднит.
--
 
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.