Page 1 of 1
Сворачивание окна в заголовок
Posted: Tue Oct 23, 2018 7:33 pm
by lev
По мотивам обсуждения -
http://board.kolibrios.org/viewtopic.php?p=71527#p71527
Имхо при сворачивании не должно оставаться никаких дополнительных рамочек, а окно должно сворачиваться в заголовок и ничего более. Соответственно не придётся предпринимать никаких дополнительных усилий по контролю свёрнутости окна, рисованию на оставшейся полоске и т.п.
В приложении тестовое ядро, где я попытался убрать полоску.
Просьба погонять чуток, вдруг чего выпадет. Ну, или понаписать, что полоска очень нужна и ничего с ней делать не надо.
Re: Сворачивание окна в заголовок
Posted: Tue Oct 23, 2018 7:41 pm
by 0CodErr
lev wrote:Ну, или понаписать, что полоска очень нужна и ничего с ней делать не надо.
Проблема не в самой полоске, я про это говорил
http://board.kolibrios.org/viewtopic.php?p=71527#p71539
lev wrote:Соответственно не придётся предпринимать никаких дополнительных усилий по контролю свёрнутости окна, рисованию на оставшейся полоске и т.п.
Если бы ядро не позволяло рисовать на нижнем и правом крае окна, то дополнительного контроля и не нужно было бы.
Фиксить ИМХО нужно другое.
Re: Сворачивание окна в заголовок
Posted: Tue Oct 23, 2018 8:01 pm
by lev
А я не говорил -
http://board.kolibrios.org/viewtopic.php?p=57018#p57018
Я ещё тогда, и задолго до того присматривался, с какого боку подойти, но так и не справился, не ассемблерщик я. А тут всего одну строчку поменять для теста.
Re: Сворачивание окна в заголовок
Posted: Wed Oct 24, 2018 2:02 am
by Leency
Я же отписался в той же теме на 4 комента ниже
http://board.kolibrios.org/viewtopic.php?p=71527#p71552
у некоторых скинов есть проблема помеченная на скрине: открытые линии в углах. Ее можно избежать, если поверх низа скина рисовать линию толщиной 1px цвета внешнего бордера.
В ядре из этой темы проблема не пофикшена.
Описанный способ позволит избежать лишних проверок, как в варианте
0CorErr. К тому же иногда нужно рисовать на скине, см. например Календарь.
Re: Сворачивание окна в заголовок
Posted: Wed Oct 24, 2018 10:28 am
by 0CodErr
Тут ведь не только свёрнутое в заголовок окно нужно фиксить, как
lev и писал ранее
http://board.kolibrios.org/viewtopic.php?p=57018#p57018
Насколько помню, проблема в том, что одна и та же процедура рисует и пиксели в окне, и пиксели скина(в том числе нижнюю и правую рамки).
Пиксели окна
не нужно рисовать на нижней и правой рамке, а пиксели скина
нужно.
Дополнительные проверки замедлили бы код отрисовки внутри окна.
Значит, остаётся
lev wrote:2) Завести дубль функции PutPixel
Пусть назовём её
PutSkinPixel.
Когда я раньше пробовал это пофиксить, то дополнительных проверок не делал, и не только "элементы интерфейса", но и нижняя и правая рамки просто совсем не рисовались.
Поэтому пофиксить реально, варианты:
- сделать дополнительно PutSkinPixel
добавить дополнительные проверки
Первый — лучше.