Ooops, obviously i meant
while (g_timer_elapsed(timer) < 0.5)
not "> 0.5"
2008/6/18 Milosz Derezynski <[EMAIL PROTECTED]>:
> What is probably better is to use gdk_flush() after the execution of
> gtk_window_move() or _resize(), and after that make sure that you run the
> main event loop with gtk_main_iteration(); you can use a GTimer to determine
> the time elapsed. Obviously, and also since this involves the windowing
> system whose timing can not really be predicted, this is nothing for time
> critical applications and can't be very precise, but tweaks of the mentioned
> mechanism are surely possible.
>
> An example would look like this (off the top of my head, might contain some
> errors):
>
> GTimer *timer = g_timer_new();
> gtk_window_move(GTK_WINDOW(window), x, y);
> g_timer_reset(timer);
> while(g_timer_elapsed(timer) > 0.5)
> while(gtk_events_pending())
> gtk_main_iteration();
> g_timer_destroy(timer);
>
> Hopefully someone has a more elegant solution :)
>
> -- Milosz
>
> 2008/6/18 Craig Harding <[EMAIL PROTECTED]>:
>
> I'm trying to move a gtk window multiple times within a period of time
>> but it seems that it doesn't update the window position for each
>> window move until gtk_main() is called and then all window moves are
>> done at once it seems. I want to move a window with a usleep call
>> inbetween window moves.
>>
>> Can any provide me with some guidance? Is there a flush or update call
>> I'm missing?
>>
>> Below is my code..
>>
>> #include <gdk/gdk.h>
>> #include <gtk/gtk.h>
>>
>> int main (int argc, char **argv) {
>>
>> GtkWidget *window;
>> int w=200, h=200;
>> int x, y;
>>
>> x=100;
>> y=50;
>>
>> gtk_init(&argc, &argv);
>> window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>> gtk_widget_show_all(window);
>> g_signal_connect (G_OBJECT (window), "delete-event", gtk_main_quit,
>> NULL);
>> usleep(500000);
>> printf("sleep fnished\n");
>> gtk_widget_show(window);
>> gtk_window_resize (GTK_WINDOW (window), w, h);
>> usleep(500000);
>> printf("sleep fnished\n");
>> gtk_window_move (GTK_WINDOW (window), x, y);
>>
>> usleep(500000);
>> gtk_widget_show(window);
>> gtk_window_resize (GTK_WINDOW (window), w+300, h);
>>
>> printf("gtk_main()\n");
>> gtk_main();
>>
>> return 0;
>> _______________________________________________
>> gtk-list mailing list
>> [email protected]
>> http://mail.gnome.org/mailman/listinfo/gtk-list
>>
>
>
_______________________________________________
gtk-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-list