Amióta frissítettem az asztali Ubuntu rendszeremet megjelentek benne furcsa bugok, természetesen cserébe azokért a bugokért amik viszont kijavultak a release frissítés keretében. A munkát legjobban befolyásoló hiba az, hogy az Eclipse keretrendszerben bizonyos dialógusablakokban nem tudok a gombra kattintani, miközben a billentyűzetkombinációk működnek.
Kis utánajárással kiderült, hogy az új GTK-val van a probléma, azon belül is a “Client Side Windows” technológiával. Ennek keretében bizonyos SWT modulok módosultak amire az eclipse és hasonlóan a flash player még nincs felkészülve, ezért a mouseevent-ek kiszámíthatatlanul működnek. Flash esetén pl. nem megy a bal klikk bizonyos esetekben, de ha jobb klikkelek és nyomva tartom folyamatosan, akkor szépen működik a bal is.
Van rá megoldás, méghozzá a “Client Side Windows” technológia letiltása egy “export GDK_NATIVE_WINDOWS=1” hívással beállított környezeti változó segítségével. A flashplayer modulnak van is bash wrappere, abba úgy ahogy van be lehet injektálni és azonnal működik is a firefox újraindítása nélkül, az eclipse-hez pedig kell gyártani egyet.
Tömören erről szól az alábbi két bug, melyben írnak sok minden másról is, Compiz letiltása és hasonlók, de végső soron kijön, hogy a fent vázolt egyszerű megoldás eliminálja a problémát.
Eclipse 3.5-höz van már új Karmic csomag, ebben benne van az az SWT patch amivel helyesen működik, az eclipse-org-os forrásból származó dolgok esetén pedig wrapperes megoldás kell.
Eclipse: https://bugs.launchpad.net/ubuntu/+source/eclipse/+bug/443004
Flash: https://bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/410407
…a “Client Side Windows” technológia letiltása egy “export GDK_NATIVE_WINDOWS=1″ hívással beállított környezeti változó segítségével…
Ezt kifejtenéd bövebben? (hogy tudom megcsinálni?) Elnézést a láma kérdésért, de még n00b vagyok ;~)
Ez gyakorlatilag annyit jelent, hogy mielőtt az alkalmazás elindul, be kell állítani a GDK_NATIVE_WINDOWS környezeti változót. Ez Eclipse és Flash esetén is máshogy működik. Flash esetben az írásomban található hivatkozás 3. megoldását kell végigcsinálni. Eclipse esetén a legegyszerűbb módszer, ha terminálból indítjuk el és az elindítás előtt kiadjuk a fent leírt utasítást.
értem, köszi