My Gtk3 program works, just fine. However, I get these critical Gtk messages when the program runs. I have hacked around speculatively changing assertions to no effect. I have, of course searched the web for answers. A code fragment follows which (I think) is causing the messages. The Gtk3 is hand coded, no Glade.
How should I go about debugging this type of message ?
(Kollwitz:144526): Gtk-CRITICAL **: 15:22:53.814: gtk_text_buffer_insert_at_cursor:
assertion 'GTK_IS_TEXT_BUFFER (buffer)' failed
(Kollwitz:144526): Gtk-CRITICAL **: 15:22:53.814: gtk_text_buffer_get_insert: a
ssertion 'GTK_IS_TEXT_BUFFER (buffer)' failed
(Kollwitz:144526): Gtk-CRITICAL **: 15:22:53.814: gtk_text_view_scroll_mark_onscreen:
assertion 'GTK_IS_TEXT_VIEW (text_view)' failed
(Kollwitz:144526): Gtk-CRITICAL **: 15:22:53.814: gtk_text_view_get_buffer:
assertion 'GTK_IS_TEXT_VIEW (text_view)' failed
GtkWidget *install_console(int width, int height, GtkWidget **console_text_view)
{
GtkWidget *scroll_window;
GtkTextBuffer *console_buffer;
PangoFontDescription *font;
GdkRGBA rgba;
scroll_window = gtk_scrolled_window_new(NULL, NULL);
gtk_container_set_border_width(GTK_CONTAINER(scroll_window), 5);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_widget_set_size_request(scroll_window, width, height);
*console_text_view = gtk_text_view_new();
gtk_container_add(GTK_CONTAINER(scroll_window), *console_text_view);
font = pango_font_description_from_string("Monospace 8");
gtk_widget_override_font(*console_text_view, font);
console_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(*console_text_view));
// Change default color throughout the widget
gdk_rgba_parse (&rgba, "blue");
gtk_widget_override_color(*console_text_view, GTK_STATE_FLAG_NORMAL, &rgba);
gtk_text_buffer_insert_at_cursor(console_buffer, "", -1);
return scroll_window;
}
void gui_console_printf(GtkWidget **console_text_view, const char *control, ...)
{
va_list parms;
GtkTextBuffer *console_buffer;
GtkTextMark *console_mark;
char text[TEXT_BUFFER_SIZE];
va_start(parms, control);
vsnprintf(text, TEXT_BUFFER_SIZE, control, parms);
printf("%s", text);
console_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(*console_text_view));
gtk_text_buffer_insert_at_cursor(GTK_TEXT_BUFFER(console_buffer), text, -1);
console_mark = gtk_text_buffer_get_insert(GTK_TEXT_BUFFER(console_buffer));
gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(*console_text_view), console_mark);
gui_update();
va_end(parms);
}