GNOME Bugzilla – Bug 630031
Handle custom marshallers for signals from different type but with the same name
Last modified: 2010-11-21 21:47:42 UTC
Gtk2::Dialog's and Gtk2::InfoBar's "response" signal demonstrates this. Here's a patch.
Created attachment 170573 [details] [review] Correctly store and look up custom signal marshallers Rather than storing (signal name => (marshaller, instance type)) associations, use (instance type => (signal name => marshaller)). This ensures that we handle signal names occurring more than once in the object hierarchy. For example, Gtk2::Dialog and Gtk2::InfoBar both have a "response" signal (for which we want to install custom signal marshallers). This implies that the look up implementation used during signal connection needs to walk the ancestry and the interfaces of the instance's type in the search for custom signal marshallers.