[ekg2-devel] Odswiezanie okienka kontaktow - ncurses
Jakub Zawadzki
darkjames w darkjames.ath.cx
Śro, 6 Lut 2008, 13:58:41 CET
Czesc,
W zwiazku z tym ze sorted_all_cache dziala zle, probujac odczytywac
zawartosci komorek pamieci juz zwolnionych.
A ja swoja droga nie widze sensu _ciaglego_ odswiezania okienka z
kontaktami jak cos sie zmieni na ekrani
(1Hz lub czesciej, bo ncurses:clock tak dziala ze odswieza statusbara i headerbara)
(Konsultacje dlaczego to jest tak robione (w koncu to zabija
wydajnosc) z deweloperem ekg1 nie przyniosly zadnych wynikow
(standardowo: nie wiem czemu tak jest, dawno pisalem, ale dziala))
Wiec moje poprawki robia cos takiego:
- zmien obsluge handle_redraw okienka, na cos co zwraca 0 (i nic wiecej
nie robi)
Potrzebne: bo inaczej window_floating_update() w ncurses_refresh() by
nam zrobilo kuku z: ncurses_clear(w, 1);
- usuwam sorted_all_cache, a zamiast tego odswiezam zawartosc, przerysowuje, komituje zmiany:
ncurses_contacts_update(contacts), ncurses_redraw(contacts), ncurses_commit()
Chyba wyjasnienia zbedne.
- dodaje odwiezanie userlisty przy SESSION_EVENT (jak sesja sie polaczyla / rozlaczyla)
- dodaje odswiezanie userlisty przy UI_REFRESH (^l)
Tutaj niestety hack, bo ekg2 w pluginach i w core, w wielu miejscach nie
emituje zadnych informacji ze sie zmienily wpisy w userliscie.
GiM, irc plugin tego w ogole nie robi :(
Ja sam nie wiem jak to zrobic zeby bylo dobrze, na razie useria musi
redrawnac userliste z reki.
=============== Konkluzje ===================
W/g mnie te zmiany sa konieczne, nawet jesli bedziemy dostawac
bugreporty w stylu:
"Dodalem usera, nie pokazal mi sie w userliscie, zmienilem okienko na inne, i sie pokazal"
[Swoja droga tak sie teraz robi przy sorted_all_cache, (czyt. jak mamy wlaczone pokazywanie wszystkich userow ze wszystkich sesji)
i tam gdzie nie ma emitowania zdarzen do UI]
Ale to jest lepsze niz ukrywanie buga i redraw okienka userlisty co sekunde..
Aha, no i to trzeba zrobic przed wydaniem 0.2 (nie mam planu wydawniczego, czyli jak najszybciej)
Zmiany tutaj:
http://ml.ziew.org/mailman/pipermail/ekg2-commit/2008-February/004360.html
(Swoja droga obsluga okienke plywajacych w ekg2 tylko dla kontaktow imho
sux. Wiem ze to mialo byc super uniwersalne, i zeby fajne rzeczy mozna
bylo z tym robic: ale tego kodu nikt nie uzywa :( )
Pozdrawiam.
Więcej informacji o liście dyskusyjnej ekg2-devel