Hi Vald

2009/4/8 Vlad Volodin <[email protected]>:
> Hello everybody,
>
> I have a clutter from git (0.9) and clutter-gtk from git too (0.9).
> When I used them in my project, I've got a strange Gtk-CRITICAL
> warning, while I resized the main window. I've also tried to build
> clutter-gtk with standard ./configure && make, and launch an example
> with such way:
>
> ~/git/clutter-gtk/examples$ ./gtk-clutter-multistage
> (/home/vest/git/clutter-gtk/examples/.libs/lt-gtk-clutter-multistage:1496):
> Gtk-CRITICAL **: gtk_widget_queue_draw: assertion `GTK_IS_WIDGET
> (widget)' failed
> (/home/vest/git/clutter-gtk/examples/.libs/lt-gtk-clutter-multistage:1496):
> Gtk-CRITICAL **: gtk_widget_queue_draw: assertion `GTK_IS_WIDGET
> (widget)' failed
> .... and so on. These errors are occured only with resizable widgets.

I hit this one yesterday too, but tought that this was my fault.

> I think, I've found the correct answer of my problem:
>
> clutter-gtk/gtk-clutter-embed.c
> 502:  priv->queue_redraw_id =
> 503:    g_signal_connect (priv->stage,
> 504:                      "queue-redraw", G_CALLBACK (on_stage_queue_redraw),
> 505:                      embed);
>
> due to help: on_stage_queue_redraw should have a prototype in the next way:
> The "queue-redraw" signal
> void user_function (ClutterActor *actor,
>                            ClutterActor *origin,
>                            gpointer      user_data)      : Run Last
>
> but in clutter-gtk/gtk-clutter-embed.c
> 91: static void
> 92: on_stage_queue_redraw (ClutterStage *stage,
> 93:                       gpointer      user_data)
> 94:{
> 95:  GtkWidget *embed = user_data;
>
> it looks like user_data isn't embed, but is a origin. When I've
> changed the lines as
> 91: static void
> 92: on_stage_queue_redraw (ClutterStage *stage, ClutterStage* origin,
> 93:                       gpointer      user_data)
> everything got work!!!

I can comfirm, this change indeed fixes problem.
Great thanks for tracking and finding solution for it!

Cheers, Piotr
--
To unsubscribe send a mail to [email protected]

Reply via email to