BTW, g_main_context_invoke() will be erratic if you do not have the main
context loop running. This is common at startup, when you do all sort of
gtk_xx before entering the main loop. Solution: start the loop as soon as
possible in the main thread, and anything else the main thread needs to do,
put in a g_idle function.

2013/1/30 Edscott Wilson <edscott.wilson.gar...@gmail.com>

> The current method for calling gtk_xx instructions is from the main thread
> only (i.e., that which owns the main loop context). You can do this by
> means of g_main_context_invoke(). Otherwise you must use the deprecated
> gdk_threads_enter/gdk_threads_leave mutex method. The deprecated method is
> slower.
>
> If you do not do the above, you will get all sort of errors just like the
> one you describe.
>
> HTH
>
>
> 2013/1/30 Ferdinand Ramirez <ramirez.ferdin...@yahoo.com>
>
>> I have encountered a strange error followed by a crash when I add the
>> following object to a GtkTextView by creating a child anchor and call
>> gtk_widget_show_all.
>>
>> The object that is added
>>
>> The object that is added to the child anchor is a GtkFrame inside which
>> is a GtkTable and each cell of the table contains another GtkFrame each of
>> which contains a GtkTextView.
>>
>> The error
>>
>> This works fine if it is all done from the main program. However, when I
>> create the hierarchy described above in another thread and call
>> gtk_widget_show_all on the GtkFrame that is added, I get an error in paint
>> saying code should not be reached. Before this error, there is a warning
>> that the iterator in text view has changed. I am not sure if the warning
>> and error are related.
>>
>> Source of the error
>>
>> I replaced gtk_widget_show_all by gtk_widget_show in a loop going down
>> the tree and calling it for each object. The source of the error was the
>> gtk_widget_show on the leaf level view objects in the frames contained in
>> each cell of the table.
>>
>> Situations under which it works
>>
>> When the leaf level GtkTextView objects are not part of the hierarchy of
>> widgets I create or they are replaced by GtkEntry objects, everything works
>> fine. Again, note that it also works fine if I do not have another thread
>> and call everything from the main program on startup but I need to have
>> another thread as this object will be created during the course of the
>> program. I've tried both g_idle_add as well as using the
>> gdk_threads_enter/leave pair.
>>
>> Any help will be appreciated.
>>
>> -Ferdinand
>> _______________________________________________
>> gtk-app-devel-list mailing list
>> gtk-app-devel-list@gnome.org
>> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>>
>
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to