[gtkmm] Gtk::Invisible broken?



I'm using gtkmm 1.3.17 and I can't get a Gtk::Invisible to work.  Here's
a simple program that shows the problem:
#include <gtkmm.h>

int main( int argc, char** argv )
{
   Gtk::Main proggy( argc, argv );
   Gtk::Window win( Gtk::WINDOW_TOPLEVEL );
   win.add( *manage( new Gtk::Invisible() ) );
   win.set_size_request( 100, 100 );
   win.show_all();
   proggy.run( win );
}


I built that with:
g++ -I/usr/local/include/gtkmm-2.0 -I/usr/local/lib/gtkmm-2.0/include
-I/usr/local/lib/sigc++-1.2/include -I/usr/local/include/sigc++-1.2
-I/usr/include/gtk-2.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include
-I/usr/include/pango-1.0 -I/usr/include/Xft2 -I/usr/include/freetype2
-I/usr/X11R6/include -I/usr/include/atk-1.0 -L/usr/local/lib -lgtkmm-1.3
-lgdkmm-1.3 -latkmm-0.0 -lgtk-x11-2.0 -lpangomm-0.0 -lglibmm-1.3
-lsigc-1.1 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0
-lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
-g invtest.cc


When I run it, the window appears for a split second and then this is
coughed up:
(a.out:4913): Gtk-CRITICAL **: file gtkwidget.c: line 3757
(gtk_widget_set_parent): assertion `!GTK_WIDGET_TOPLEVEL (widget)'
failed

Gtk-ERROR **: file gtkcontainer.c: line 2287
(gtk_container_propagate_expose): assertion failed: (child->parent ==
GTK_WIDGET (container))
aborting...


Here's the stack:
Program received signal SIGABRT, Aborted.
[Switching to Thread 1024 (LWP 4915)]
0x40764cf1 in kill () from /lib/libc.so.6
(gdb) where
#0  0x40764cf1 in kill () from /lib/libc.so.6
#1  0x40764b10 in raise () from /lib/libc.so.6
#2  0x40765fa7 in abort () from /lib/libc.so.6
#3  0x4062d396 in g_logv () from /usr/lib/libglib-2.0.so.0
#4  0x4062d3d4 in g_log () from /usr/lib/libglib-2.0.so.0
#5  0x402ae39c in gtk_container_propagate_expose () from
/usr/lib/libgtk-x11-2.0.so.0
#6  0x402ae08f in gtk_container_get_focus_hadjustment () from
/usr/lib/libgtk-x11-2.0.so.0
#7  0x4027a3ec in gtk_bin_get_type () from /usr/lib/libgtk-x11-2.0.so.0
#8  0x40115f7c in
Gtk::Container_Class::forall_vfunc_callback(_GtkContainer*, int, void
(*)(_GtkWidget*, void*), void*) (self=0x807f148, include_internals=1,
    callback=0x402ae060 <gtk_container_get_focus_hadjustment+560>,
callback_data=0xbffff250) at container.cc:337
#9  0x402ac15c in gtk_container_forall () from
/usr/lib/libgtk-x11-2.0.so.0
#10 0x402ae12f in gtk_container_get_focus_hadjustment () from
/usr/lib/libgtk-x11-2.0.so.0
#11 0x403f9f52 in gtk_window_reshow_with_initial_size () from
/usr/lib/libgtk-x11-2.0.so.0
#12 0x4016e129 in Gtk::Widget_Class::expose_event_callback(_GtkWidget*,
_GdkEventExpose*) (self=0x402ae060, p0=0xbffff760) at widget.cc:3396
#13 0x40308684 in gtk_propagate_event () from
/usr/lib/libgtk-x11-2.0.so.0
#14 0x405cb4a7 in g_type_class_meta_marshal () from
/usr/lib/libgobject-2.0.so.0
#15 0x405cb100 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#16 0x405df179 in signal_emit_unlocked_R () from
/usr/lib/libgobject-2.0.so.0
#17 0x405de499 in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#18 0x4034a0d2 in gtk_signal_emit () from /usr/lib/libgtk-x11-2.0.so.0
#19 0x403ebc53 in gtk_widget_send_expose () from
/usr/lib/libgtk-x11-2.0.so.0
#20 0x403070bc in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#21 0x4050023f in gdk_window_clear_area_e () from
/usr/lib/libgdk-x11-2.0.so.0
#22 0x405002da in gdk_window_process_all_updates () from
/usr/lib/libgdk-x11-2.0.so.0
#23 0x40500341 in gdk_window_process_all_updates () from
/usr/lib/libgdk-x11-2.0.so.0
#24 0x40627ba3 in g_idle_dispatch () from /usr/lib/libglib-2.0.so.0
#25 0x40624e85 in g_main_dispatch () from /usr/lib/libglib-2.0.so.0
#26 0x40625eb8 in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#27 0x406261cd in g_main_context_iterate () from
/usr/lib/libglib-2.0.so.0
#28 0x4062693f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#29 0x4030693f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#30 0x4012dc22 in Gtk::Main::run_impl() (this=0xbffffa20) at main.cc:471
#31 0x4012dac9 in Gtk::Main::run(Gtk::Window&) (window= 0xbffff980) at
main.cc:425
#32 0x08048abb in main (argc=1, argv=0xbffffaa4) at invtest.cc:10
#33 0x407551ca in __libc_start_main () from /lib/libc.so.6

Am I doing something dumb, or is it broken?

Thanks for gtkmm... it's good stuff...
-Tony




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]