arisu писал(а):
Иван Денисов писал(а):
Принципиально я согласен! что сейчас код с немодальностью несовместим. Так как надо делать через обратные вызовы, как я сделал GetAction в Dialog. Так надо и выбор цвета и шрифта переделывать.
именно! я очень криво именно это тоже и пытался сказать. но это неизбежно поломает совместимость с существующим внешним кодом. мне-то всё равно, у меня старых проектов нет, но другим может быть важно.
Иван Денисов писал(а):
Меня тревожит, что Views.Old немодально не открыть. ББ просто зависнет на многих линуксах, так как попытается открыть модальный диалог, который рушит процесс.
вот это одна из проблем, почему беда с полной немодальностью глубже, чем просто переделать несколько мест, увы. и поэтому я считаю, что надо тяжело вздохнуть — и таки добавить в среду возможность делать модальные окна. это плохо, это неправильно — но позволит делать подобные диалоги средствами самой среды.
хотя бы временно добавить, написав большими буквами в исходниках, что не надо эту фичу использовать, её когда-нибудь удалят. как будто такие предупреждения хоть раз кому-то помогали, конечно.

Страшная тайна в том, что это можно сделать через сопрограммы. Сопрограммы для Windows описаны хорошо в сборке Центра, а для Linux в одном из расширений Дмитрия Викторовича Дагаева они тоже сделаны! Однако это сделано для старых ядер, до того, как они были рассечены для упрощения репозитория и более удобной кросс-компиляции и кросс-сборки. Но это всё возможно освежить, внедрить и радоваться модальным окнам, которые сделаны будут в самом Блэкбоксе. Только это всё займет какое-то феерическое количество времени, чтобы внедрить и отладить. Однако при наличии мотивации, с пониманием, зачем и куда вы это внедрите, я думаю, что всё возможно.
У меня пока такой "ленивый" план, чтобы документировать опасные моменты "не вызывайте в Linux Views.Old, используйте только Dialog.GetIntLocName Dialog.GetExtLocName"