GNOME Bugzilla – Bug 543872
Can't override Gtk.Container.forall ()
Last modified: 2009-05-07 13:42:43 UTC
The signature in the vapi is: virtual void forall (Gtk.Callback callback, void* callback_data); but it should be: virtual void forall (bool include_internals, Gtk.Callback callback); It seems that the vapi generator takes the wrong signature because there are two different method signatures for 'forall' in the 'gtk/gtkcontainer.h' header file. The wrapper method has a different signature than the virtual method: void (*forall) (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); and void gtk_container_forall (GtkContainer *container, GtkCallback callback, gpointer callback_data); The ability to override 'forall' is important for creating custom GTK+ widgets.
Created attachment 131588 [details] [review] Add Gtk.Container.forall_internal to work around the inconsistant forall binding. Tge patch adds forall_internal to Gtk.Container. However to correctly chain-up to the base methods, Bug 577114 has to be fixed first.
commit 5520f092edfb457081fb261bac93fc9b8f2a0ed0 Author: Feng Yu <fengyu@dhcp5-240.iucf.indiana.edu> Date: Sat Mar 28 15:21:32 2009 -0400 gtk+-2.0: Add Gtk.Container.forall_internal Add Gtk.Container.forall_internal to work around the inconsistent forall binding. Fixes bug 543872.