[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