- Jak funguje komunikace mezi window managerem, a X serverem? Jen pres server, nebo komunikuje i primo s klienty? Existuje nejake API v X protokolu, kde se WM zaregistruje, a muze hakovat pozadavky? To omezeni jen na toplevel okna je zabudovano v X serveru?
- Kdyz kazdy drobny prvek v GUI je na X-serveru reprezentovan jako "okno" s nejakym numerickym window id (vim akorat ze se alokuje per-klient a deterministicky, takze asynchronne), maly dialog klidne bude obsahovat desitky az stovky oken. Jakym zpusobem jsou na X serveru okna reprezentovana? Kdyz vidim to mnozstvi atributu, ktere lze pro kazde okno nastavit, proste ceckove struktury by byly v obecnem pripade zbytecne velke, a plne defaultnich hodnot. Pouziva X server nejaky chytry objektovy a atributovy model? Jaka je jeho pametova rezie?
- Jak moc je xlib reentrantni?
Diky...
- Komunikace mezi WM a X serverem funguje naprosto normalne, WM je X klient ktery ma jen navic nektera specialni privilegia (viz nize). Zadni X klienti nekomunikuji primo, veskera komunikace jde pres X server (leda ze by pouzili neco jineho nez X protocol, treba DCOP). Ano, WM si zaregistruje event mask SubstructureRedirectMask na root okne, a potom X server misto provedeni nekterych operaci s toplevel okny jen posle o tom udalost WM a ten se rozhodne, jestli a jak tu operaci provede. Tu event mask lze pouzit i jinde, ale jinde nez u root okna to pro WM moc nedava smysl.
- To fakt netusim.
- Pokud se pouzije XInitThreads(), mel by byt Xlib plne thread-safe.