🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
3 messages
3 total messages Started by AMX Wed, 22 Feb 2012 11:42
Gtk+ nieskończona pętla zdarzeń
#72435
Author: AMX
Date: Wed, 22 Feb 2012 11:42
29 lines
1666 bytes
Witam!

Próbuję napisać prosty program do wyświetlania obrazka przy
użyciu Gtk. Doszedłem do kodu, który jest analogiczny jak 
ostatni listing na
http://ubuntuforums.org/showthread.php?t=761973

Obsługa zdarzenia "expose-event" (zmiana wymiarów okna) wywołuje
funkcję resize_image(), w której użycie
gtk_image_set_from_pixbuf() generuje nowe zdarzenie
"expose-event".

Wywołuje to nieskończony ciąg zdarzeń i wywołań funkcji do ich
obsługi. Obciążenie skacze do 1.0 i nic sensownego z tego nie
wychodzi.

Co jest źle i jak zrobić aby było dobrze? =:-)

Będę wdzięczny za wskazówki

   AMX


PS. Raczej nie ma to znaczenia ale pracuje na Debian stable czyli
Gtk+ 2.20

-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Re: Gtk+ nieskończona pętla zdarzeń
#72436
Author: Michoo
Date: Wed, 22 Feb 2012 17:35
11 lines
1275 bytes
W dniu 22.02.2012 12:42, AMX pisze:
> Obsługa zdarzenia "expose-event" (zmiana wymiarów okna) wywołuje
> funkcję resize_image(), w której użycie
> gtk_image_set_from_pixbuf() generuje nowe zdarzenie
> "expose-event".
>
To przeczytaj teraz kiedy "expose-event" jest generowane.

-- 
Pozdrawiam
Michoo
Re: Gtk+ nieskończona pętla zdarzeń
#72437
Author: AMX
Date: Wed, 22 Feb 2012 19:07
32 lines
2032 bytes
On Wed, 22 Feb 2012 18:35:21 +0100, Michoo <michoo_news@vp.pl> wrote:
>> Obsługa zdarzenia "expose-event" (zmiana wymiarów okna) wywołuje
>> funkcję resize_image(), w której użycie
>> gtk_image_set_from_pixbuf() generuje nowe zdarzenie
>> "expose-event".
>>
> To przeczytaj teraz kiedy "expose-event" jest generowane.
>

Bingo! (no, prawie). Nie przejmowałem się expose bo testowałem
również configure i size-request. Po doczytaniu nt. expose wiem,
że tak to się ma zachowywać. Po dokształceniu i zmianie na
configure_event program zaczął się znacznie lepiej zachowywać.

Ale też nie do końca jestem zadowolony, bo leci cała seria żądań
od rozmiaru początkowego do końcowego (to mnie zmyliło, bo
sądziłem, że to też pętla nieskończona).

W tzw. międzyczasie wymyśliłem aby dodać statyczne przechowywanie
poprzedniego rozmiaru i jeśli ten się nie zmienił to nie
skalować. Ale to tylko obejście, nie wiem czy jest bardziej
eleganckie rozwiązanie.

Gdzie można znaleźć listę standardowych zdarzeń? 

Dziękuję

   AMX

-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads