After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 543872 - Can't override Gtk.Container.forall ()
Can't override Gtk.Container.forall ()
Status: RESOLVED FIXED
Product: vala
Classification: Core
Component: Bindings
0.3.x
Other All
: Normal normal
: ---
Assigned To: Jürg Billeter
Vala maintainers
Depends on:
Blocks:
 
 
Reported: 2008-07-20 15:54 UTC by Frederik Zipp
Modified: 2009-05-07 13:42 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Add Gtk.Container.forall_internal to work around the inconsistant forall binding. (1.45 KB, patch)
2009-03-28 19:37 UTC, rainwoodman
committed Details | Review

Description Frederik Zipp 2008-07-20 15:54:32 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.
Comment 1 rainwoodman 2009-03-28 19:37:07 UTC
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.
Comment 2 Jürg Billeter 2009-05-07 13:42:43 UTC
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.