LINUX.ORG.RU

История изменений

Исправление Sunderland93, (текущая версия) :

Ну, допустим композитор рисует рамку. Но он же не говорит, что кнопка «свернуть» нажата.

Не говорит, я выше же написал. Отследить только по состоянию toplevel'а. Вот как в примере из libdecor это все сделано. https://gitlab.freedesktop.org/libdecor/libdecor/-/blob/master/demo/demo.c?re... Тебе вообще тут ничем заморачиваться не придется, на системах с xdg-decoration будет запрошена серверная декорация, контролируемая композитором. В Гноме - клиентская нарисуется, благодаря плагину на GTK будет внешний вид как у всего Гномовского. Остальным займется библиотека. Композитор просто будет менять состояние твоего окна, скрывая его. Насчет нескольких окон - я не знаю как здесь что сделать, в Wayland многооконные интефейсы приложений работают плохо. В гимпе например можно отдельные окна свернуть по кнопке на окне, но кликая по значку в панели - сворачиваются и разворачиваются все разом. Протокол есть только для стыкуемых окон (dockers). Если для тебя принципиален многооконный интерфейс твоей проги, и ты ни при каких обстоятельствах не хочешь это менять, то лучше запускай принудительно в Xwayland. И жди когда доделают и смержат это https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/264

Исправление Sunderland93, :

Ну, допустим композитор рисует рамку. Но он же не говорит, что кнопка «свернуть» нажата.

Не говорит, я выше же написал. Отследить только по состоянию toplevel'а. Вот как в примере из libdecor это все сделано. https://gitlab.freedesktop.org/libdecor/libdecor/-/blob/master/demo/demo.c?re... Тебе вообще тут ничем заморачиваться не придется, на системах с xdg-decoration будет запрошена серверная декорация, контролируемая композитором. В Гноме - клиентская нарисуется, благодаря плагину на GTK будет внешний вид как у всего Гномовского. Остальным займется библиотека. Композитор просто будет менять состояние твоего окна, скрывая его. Насчет нескольких окон - я не знаю как здесь что сделать, в Wayland многооконные интефейсы приложений работают плохо. В гимпе например можно отдельные окна свернуть по кнопке на окне, но кликая по значку в панели - сворачиваются и разворачиваются все разом. Протокол есть только для стыкуемых окон (dockers)

Исходная версия Sunderland93, :

Ну, допустим композитор рисует рамку. Но он же не говорит, что кнопка «свернуть» нажата.

Не говорит, я выше же написал. Отследить только по состоянию toplevel'а. Вот как в примере из libdecor это все сделано. Тебе вообще тут ничем заморачиваться не придется, на системах с xdg-decoration будет запрошена серверная декорация, контролируемая композитором. В Гноме - клиентская нарисуется, благодаря плагину на GTK будет внешний вид как у всего Гномовского. Остальным займется библиотека. Композитор просто будет менять состояние твоего окна, скрывая его. Насчет нескольких окон - я не знаю как здесь что сделать, в Wayland многооконные интефейсы приложений работают плохо. В гимпе например можно отдельные окна свернуть по кнопке на окне, но кликая по значку в панели - сворачиваются и разворачиваются все разом. Протокол есть только для стыкуемых окон (dockers)