Re: I can't understand the difference output of only a line differ



there's no need to reply to me: I'm subscribe to the list, so reply
there.

On Thu, 2007-12-06 at 18:54 +0800, Binary Chen wrote:
On Thu, 2007-12-06 at 10:41 +0000, Emmanuele Bassi wrote:
On Thu, 2007-12-06 at 17:40 +0800, Binary Chen wrote:

  while (1) {
          sleep(1);
          gdk_draw_image(drawing->window, gc, img, 0, 0, 0, 0, 200, 200);
  }

you are blocking with your own loop before entering inside the gtk+ main
loop with the following call:

  gtk_main();

But without the sleep() I will also not reach gtk_main(), but the window
shows, why? What I am asking is this.

gdk_draw_image() forces a flush. but that is not the problem: you should
never use a while() loop inside a GTK+ application, because you are
effectively blocking the real main loop from spinning. remember: GTK+ is
not threaded.

use a timeout or an idle source to repaint your window with the
GdkImage.

ciao,
 Emmanuele.

-- 
Emmanuele Bassi,
W: http://www.emmanuelebassi.net
B: http://log.emmanuelebassi.net




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]