On Tue, 30 Oct 2001, you wrote:
> I can stimulate a segmentation violation if I change the popdown strings of
> a GtkCombo while it is popped up. This simple Python script is sufficient
> to generate a core file:
>
> #!/usr/bin/env python
>
> import gtk
>
> recursive = 0
> def fill_new(l, item, combo):
> global recursive
> if not recursive:
> recursive = 1
> combo.set_popdown_strings(["a","b","c"])
>
> def main():
> window = gtk.Window(gtk.WINDOW_TOPLEVEL)
> window.set_title("Today's Menu - Pick an Entree")
> window.connect("destroy", gtk.mainquit)
>
> combo = gtk.Combo()
> combo.set_popdown_strings(["Spam", "Eggs", "Ham"])
> combo.entry.set_text("pick an entree")
> combo.list.connect("select-child", fill_new, combo)
> window.add(combo)
>
> window.show_all()
>
> gtk.mainloop()
>
> if __name__ == "__main__":
> main()
>
> How do I work around that? Presumably, I need to wait until the Combo has
> popped down (and no longer has a pointer grab?) to change its popdown
> strings.
>
> (I'm using the CVS version of Gtk+, but I doubt it matters.)
>
> Thx,
>
> --
> Skip Montanaro (skip pobox com)
I have the same problem when changing the popdown strings (in Gtk C ) even if
I change it when it's not popped down. The problem appears when I use the
arrows keys to parse the popdown strings; a Gtk warning message is displayed and
after 4-5 steps a segmentation fault occurs.
The warning message is:
Gtk-CRITICAL **: file gtkcontainer.c: line 1209 (gtk_container_set_focus_child): assertion `GTK_IS_WIDGET (widget)' failed.
Attached is an example (in "interface.c" is my code).
Please help.
Thanks,
Cosmin Bonea
Attachment:
example.tar.gz
Description: GNU Zip compressed data