Re: [ekg-users] EKG i window resize
On Sat, 23 Apr 2011, Mikolaj Kucharski wrote: Nie, to nie pomaga, poniewaz problem jest wewnatarz ncrurses. Za to ponizszy kod dziala prawidlowo. No tak, LINES to tylko zmienna (myślałem że jakaś makrodefinicja, wołająca właśnie ioctla - nie wiem skąd mi się to wzięło). Jednak poczekam na deweloperow OpenBSD co oni zaproponuja. Jak nic nie zaproponują to daj znać, dodam tego ioctla do ekg. Moze zajze do mutt'a i irssi jak tam rozwiazany jest resize okna. W irssi w src/fe-text/term.c jest term_get_size() które woła ioctla jeżeli w sygnale WINCH zostanie ustawiona flaga. + if (ioctl(STDOUT_FILENO, TIOCGWINSZ, w) != -1) Zmieniłbym na: if (ioctl(STDOUT_FILENO, TIOCGWINSZ, w) != -1 w.ws_row != 0 w.ws_col != 0) irssi sprawdza ten warunek inaczej (dowolna musi być niezerowa, a nie obie), ale nie wyobrażam sobie prawidłowego działania jeżeli którakolwiek z tych wartości byłaby zerowa... -- gof
Re: [ekg-users] EKG i window resize
On Tue, Apr 19, 2011 at 09:07:01PM +0100, Mikolaj Kucharski wrote: On Tue, Apr 19, 2011 at 07:45:12PM +0200, Adam Wysocki wrote: On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: Nic sie nie dzieje, ekg nie zmienia rozmaru okna (ekg-20110418). Prawdę mówiąc skończyły mi się pomysły. Czy irssi lub inne programy oparte na ncurses zachowują się tak samo? Irssi, mutt (with-curses, without-slang) nie ma tego problemu jak ekg. Spoko, bede kombinowal. Dzieki za pomoc. Problem z ncurses pod OpenBSD. Na chwile obecna brak rozwiazania. Jak ktos ciekaw. http://marc.info/?t=13035003512r=1w=2 Pozdr. -- best regards q#
Re: [ekg-users] EKG i window resize
On Fri, 22 Apr 2011, Mikolaj Kucharski wrote: Irssi, mutt (with-curses, without-slang) nie ma tego problemu jak ekg. Spoko, bede kombinowal. Dzieki za pomoc. Problem z ncurses pod OpenBSD. Na chwile obecna brak rozwiazania. Jak ktos ciekaw. Spróbuj w ui-ncurses.c w ui_ncurses_loop w miejscu: if (ui_need_refresh) { ui_need_refresh = 0; endwin(); refresh(); keypad(input, TRUE); /* wywoła wszystko, co potrzebne */ header_statusbar_resize(NULL); changed_backlog_size(backlog_size); goto redraw_prompt; } Po endwin a przed refresh dodać: resizeterm(LINES, COLS); Nie wiem czy pomoże, ale warto spróbować. -- gof
Re: [ekg-users] EKG i window resize
W dniu 19 kwietnia 2011 12:18 użytkownik Adam Wysocki go...@supermedia.pl napisał: On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: Cisza.. nikt nigdy nie spotkal sie z tym problemem? Czy powinienem udac sie na ekg-devel? Wyślij screenshoty, bo program nie radzi sobie ze zmianą rozmiaru okna to pojęcie ogólne :) Najlepiej nie na listę, tylko linki do nich. screenshoty to jedna sprawa. I oczywiście linki. :) Próbowałeś ctrl + l w sytuacji jak się coś krzaczyło? Powinno odświeżyć ncurses. -- Pozdrawiam, Łukasz Gandecki 'gozda'
Re: [ekg-users] EKG i window resize
On Tue, Apr 19, 2011 at 01:04:36PM +0200, Łukasz Gandecki wrote: W dniu 19 kwietnia 2011 12:18 użytkownik Adam Wysocki go...@supermedia.pl napisał: On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: Cisza.. nikt nigdy nie spotkal sie z tym problemem? Czy powinienem udac sie na ekg-devel? Wyślij screenshoty, bo program nie radzi sobie ze zmianą rozmiaru okna to pojęcie ogólne :) Najlepiej nie na listę, tylko linki do nich. screenshoty to jedna sprawa. I oczywiście linki. :) Próbowałeś ctrl + l w sytuacji jak się coś krzaczyło? Powinno odświeżyć ncurses. CTRL + L to repaint screena, a w tym nie problem. PuTTY odpalony jest w rozmarze 80x24 (pierwszy screenshot). Przy kazdej zmianie okna wszystko sie wyswietla bez 'krzakow', lecz ekg nie aktualizuje zmiany okna. Jezeli zmienie rozmiar okna przy odpalonym ekg, nastapnie wyjde z ekg i uruchomie je na nowo, nowy rozmiar jest zinterpretowany poprawnie. Poki nie zmienie rozmiaru okna ponownie... http://www1.kucharski.name/pub/ekg/ -- best regards q#
Re: [ekg-users] EKG i window resize
On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: CTRL + L to repaint screena, a w tym nie problem. PuTTY odpalony jest w rozmarze 80x24 (pierwszy screenshot). Przy kazdej zmianie okna wszystko sie wyswietla bez 'krzakow', lecz ekg nie aktualizuje zmiany okna. Jezeli zmienie rozmiar okna przy odpalonym ekg, nastapnie wyjde z ekg i uruchomie je na nowo, nowy rozmiar jest zinterpretowany poprawnie. Poki nie zmienie rozmiaru okna ponownie... A wysłanie sygnału SIGWINCH do ekg pomaga? Czy bez odpalonego screena problem też występuje? -- gof
Re: [ekg-users] EKG i window resize
W dniu 19 kwietnia 2011 14:41 użytkownik Adam Wysocki go...@supermedia.plnapisał: On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: CTRL + L to repaint screena, a w tym nie problem. PuTTY odpalony jest w rozmarze 80x24 (pierwszy screenshot). Przy kazdej zmianie okna wszystko sie wyswietla bez 'krzakow', lecz ekg nie aktualizuje zmiany okna. Jezeli zmienie rozmiar okna przy odpalonym ekg, nastapnie wyjde z ekg i uruchomie je na nowo, nowy rozmiar jest zinterpretowany poprawnie. Poki nie zmienie rozmiaru okna ponownie... A wysłanie sygnału SIGWINCH do ekg pomaga? Czy bez odpalonego screena problem też występuje? -- gof a czy przypadkiem nie odpalasz screen -x?
Re: [ekg-users] EKG i window resize
On Tue, Apr 19, 2011 at 02:46:15PM +0200, kfahoo wrote: W dniu 19 kwietnia 2011 14:41 użytkownik Adam Wysocki [1]go...@supermedia.pl napisał: On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: CTRL + L to repaint screena, a w tym nie problem. PuTTY odpalony jest w rozmarze 80x24 (pierwszy screenshot). Przy kazdej zmianie okna wszystko sie wyswietla bez 'krzakow', lecz ekg nie aktualizuje zmiany okna. Jezeli zmienie rozmiar okna przy odpalonym ekg, nastapnie wyjde z ekg i uruchomie je na nowo, nowy rozmiar jest zinterpretowany poprawnie. Poki nie zmienie rozmiaru okna ponownie... A wysłanie sygnału SIGWINCH do ekg pomaga? Nie pomaga. Nic sie nie dzieje z ekg po otrzymaniu sygnalu. $ pkill -WINCH ekg; echo $? 0 Czy bez odpalonego screena problem też występuje? Tak jak napisalem w moim pierwszym majlu, problem wystepuje w (golym) puttym, w screenie i w tmuxie. a czy przypadkiem nie odpalasz screen -x? Nie. -- best regards q#
Re: [ekg-users] EKG i window resize
On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: Nie pomaga. Nic sie nie dzieje z ekg po otrzymaniu sygnalu. $ pkill -WINCH ekg; echo $? 0 Znajdź w ui-ncurses.c miejsce: #ifdef SIGWINCH static void sigwinch_handler(int sig) { ui_need_refresh = 1; } #endif i zmień na: #ifdef SIGWINCH static void sigwinch_handler(int sig) { gg_debug(GG_DEBUG_MISC, // SIGWINCH\n); ui_need_refresh = 1; } #else #error Brak SIGWINCH #endif To pomoże się zorientować czy SIGWINCH w ogóle jest zdefiniowany i czy handler jest wołany (powinno być w debugu - F12 w ekg). -- gof
Re: [ekg-users] EKG i window resize
On Tue, Apr 19, 2011 at 03:14:34PM +0200, Adam Wysocki wrote: To pomoże się zorientować czy SIGWINCH w ogóle jest zdefiniowany i czy handler jest wołany (powinno być w debugu - F12 w ekg). $ pkill -WINCH ekg; echo $? 0 w ekg widac: 15:51 // SIGWINCH Build log: http://www1.kucharski.name/pub/ekg/ekg-1.7p0.log -- best regards q#
Re: [ekg-users] EKG i window resize
On Tue, Apr 19, 2011 at 02:57:18PM +0100, Mikolaj Kucharski wrote: On Tue, Apr 19, 2011 at 03:14:34PM +0200, Adam Wysocki wrote: To pomoże się zorientować czy SIGWINCH w ogóle jest zdefiniowany i czy handler jest wołany (powinno być w debugu - F12 w ekg). $ pkill -WINCH ekg; echo $? 0 w ekg widac: 15:51 // SIGWINCH Oczywiscie jak zmieniam rozmiar okna to SIGWINCH tez sie loguje na debugowej konsoli w ekg. A tutaj patch, zeby bylo jasne co zrobilem: @@ -2097,8 +2097,11 @@ static void update_statusbar(int commit) #ifdef SIGWINCH static void sigwinch_handler(int sig) { + gg_debug(GG_DEBUG_MISC, // SIGWINCH\n); ui_need_refresh = 1; } +#else +#error Brak SIGWINCH #endif void save_windows() -- best regards q#
Re: [ekg-users] EKG i window resize
On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: http://www1.kucharski.name/pub/ekg/ekg-1.7p0.log 1.7... a w wersji z svn też problem występuje? -- gof
Re: [ekg-users] EKG i window resize
On Tue, Apr 19, 2011 at 05:48:02PM +0200, Adam Wysocki wrote: On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: http://www1.kucharski.name/pub/ekg/ekg-1.7p0.log 1.7... a w wersji z svn też problem występuje? Czy stad moge sprobowac? http://ekg.chmurka.net/ekg-20110418.tar.gz Tak 19:02 ::: EKG - Eksperymentalny Klient Gadu-Gadu (20110418) 19:02 ::: libgadu-20110418 (protokol 0x2e, klient 10.1.0.11070) 19:02 ::: skompilowano: Apr 19 2011 18:00:17 E-e, to samo, problem nadal wystepuje podczas zmiany rozmiaru okna. -- best regards q#
Re: [ekg-users] EKG i window resize
On Tue, Apr 19, 2011 at 07:13:03PM +0200, Adam Wysocki wrote: On Tue, 19 Apr 2011, Mikolaj Kucharski wrote: 19:02 ::: EKG - Eksperymentalny Klient Gadu-Gadu (20110418) 19:02 ::: libgadu-20110418 (protokol 0x2e, klient 10.1.0.11070) 19:02 ::: skompilowano: Apr 19 2011 18:00:17 E-e, to samo, problem nadal wystepuje podczas zmiany rozmiaru okna. Czy polecenie /_resize powoduje wtedy zmianę rozmiaru okna? Nie. Nic sie nie dzieje. W ui_ncurses.c w funkcji ui_ncurses_loop jest taki if: if (ui_need_refresh) { ui_need_refresh = 0; endwin(); refresh(); keypad(input, TRUE); /* wywoła wszystko, co potrzebne */ header_statusbar_resize(NULL); changed_backlog_size(backlog_size); goto redraw_prompt; } Dodaj przed goto: gg_debug(GG_DEBUG_MISC, // refresh\n); Najpierw zmienilem rozmiar okna 4 razy. Nastepnie wykonalem pare razy samo /_resize z wiersza polecen: 19:33 // SIGWINCH 19:33 // refresh 19:33 // SIGWINCH 19:33 // refresh 19:33 // SIGWINCH 19:33 // refresh 19:33 // SIGWINCH 19:33 // refresh 19:33 // refresh 19:33 // refresh 19:33 // refresh Nic sie nie dzieje, ekg nie zmienia rozmaru okna (ekg-20110418). --- src/ui-ncurses.c.orig Mon Apr 18 21:00:09 2011 +++ src/ui-ncurses.cTue Apr 19 18:31:31 2011 @@ -2408,8 +2408,11 @@ static void update_statusbar(int commit) #ifdef SIGWINCH static void sigwinch_handler(int sig) { + gg_debug(GG_DEBUG_MISC, // SIGWINCH\n); ui_need_refresh = 1; } +#else +#error Brak SIGWINCH #endif void save_windows() @@ -4756,6 +4759,7 @@ static void ui_ncurses_loop() header_statusbar_resize(NULL); changed_backlog_size(backlog_size); + gg_debug(GG_DEBUG_MISC, // refresh\n); goto redraw_prompt; } -- best regards q#