Re: Label wont show right.
- From: Owen Taylor <owt1 cornell edu>
- To: NGUYEN <htn3463 osfmail isc rit edu>
- Cc: gtk-list redhat com
- Subject: Re: Label wont show right.
- Date: 18 Mar 1998 13:56:56 -0500
NGUYEN <htn3463@osfmail.isc.rit.edu> writes:
> > See the FAQ question 4.11 (whose name I'm gonna have to change).
>
> I still get unexpected behaviour even with
> while(gtk_event_pending())
> gtk_main_iteration();
> in the function. The label showes up once or twice or whenever it feels like it..:). Am i doing something wrong? This isnt the X server queing on me , is it?.
> Doesnt gdk_flush() take care of that?. Here's the codes again. And thanks for your help.
The problem is that the while (gtk_events_pending())... code fragment
basically checks if there is something for GTK to do, _right now_.
But in the process of putting the window on screen, GTK momentarily
has to wait for X. At that point, the while() terminates, and your
code executes.
I thought the following:
while (1)
{
if (!gtk_events_pending())
{
gdk_flush();
if (!gtk_events_pending())
break;
}
gtk_main_iteration();
}
Might be guaranteed way of doing it. (It says, "if there is nothing
for GTK to do, wait until X has processed all our events, then
see if there is _still_ nothing for us to do".) But that doesn't
seem to help. Apparently the expose events are not generated
until after gdk_flush() (which calls XSync()) returns.
So, my best advice is that you should call the
while (gtk_events_pending()) stuff not just once at the beginning
of your processing, but occasionally during the execution of
your long-processing code. (If possible). This will have the
nice side effect that your window will get redrawn if it
is obscured during the processing.
The other thing to do is:
while(gtk_event_pending())
gtk_main_iteration();
gdk_flush ();
gtk_widget_draw (label);
Which draws the label immediately instead of waiting for it
to get exposed by Expose events.
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]