Napisal som nieco podobne aj do diskusie v predoslej "lekcii", ale zabudol som zaskrtnut zasielanie reakcie, tak otazku pisem aj sem, aby som dostal upozornenie, kebyze mi niekto odpovie (dufam, ze sem). ;)
Zaujuma ma dekorovanie okien. V tomto priklade a aj v predoslom (11-swapchain) mi na waylandovom GNOME 42 (Manjaro Linux) otvori okno bez dekoracii. Teda bez hornej listy a okrajov. A teda okno sa neda ani presuvat, ani zmenit jeho velkost. Neviete co by to mohlo byt?
Bohužel, nemám podobný systém (Manjaro+GNOME42) v tento okamžik k dispozici, abych si to zkusil sám. Zkuste si s aplikací pohrát. Zjistit třeba obsah proměnné _zxdgDecorationManagerV1. Pravděpodobně bude null. Pak se zkuste podívat do konzole, do které jsme si v devátém díle vypisovali všechny globální objekty Waylandu. Mrkněte, zda je tam zxdg_decoration_manager_v1, nebo nějaký jiný decoration manager. Případně sem pošlete výpis po spuštění devátého dílu, nebo třeba co jste zjistil.
Pozrel som vypis z 9teho tutorialu nic co by vyzeralo na dekorovanie som tam nenasiel. :(
Tak som pohladal na nete a nevyzera to dobre.
Na redite tvrdia, ze GNOME pouziva Mutter (window compositor & manager) a ten pre vulkan nema (zatial) podporu dekoraci a uzivatel si musi urobit vsetko sam a dali odkaz na kniznicu libdecor.
Prebehol som aj diskusiu k xdg-decoration podpory pre Mutter a vyzera to ze pokial bude GNOME pouzivat Mutter, tak sa SSD (Server Side Decorations) nedockame a kazda apka si musi tieto veci osetrit sama :(
Napr v takom KDE s SSD implementaciou nemali problem a tam xdg-decoration modul funguje a mozeme poziadat spavcu okien o dekorovanie (teda aspon tak som sa docital).
Díky za perfektní analýzu!
Opravdu to vypadá, že Mutter a možná ještě někdo další se rozhodli nepodporovat Server Side Decorations. S podobným problémem jsem se na KDE nesetkal...
Já bohužel pravděpodobně nebudu mít čas implementovat Client Side Decorations. Ale kdyby se našel někdo, kdo by prošlápnul cestu, nejlépe nějakým jednoduchým kódem, šlo by zvážit jeho začlenění do tohoto tutoriálu pro benefit ostatních :-) .