gtype: interface-after-init exception for glibmm

glibmm has a pretty difficult-to-solve problem caused by our recent
change to deny addition of interfaces to classes after initialisation.

They're looking for a long-term workaround for the problem, but in the
meantime we can allow the registration to succeed (with warning) if the
class looks like it's being defined by gtkmm.

https://bugzilla.gnome.org/show_bug.cgi?id=697229
This commit is contained in:
Ryan Lortie 2013-04-04 09:31:11 -04:00
parent 859e4239c5
commit c5307e4cba

View File

@ -1006,7 +1006,10 @@ check_add_interface_L (GType instance_type,
{
g_warning ("attempting to add an interface (%s) to class (%s) after class_init",
NODE_NAME (iface), NODE_NAME (node));
return FALSE;
/* See https://bugzilla.gnome.org/show_bug.cgi?id=697229 */
if (!g_str_has_prefix (NODE_NAME (node), "gtkmm__CustomObject_"))
return FALSE;
}
tnode = lookup_type_node_I (NODE_PARENT_TYPE (iface));
if (NODE_PARENT_TYPE (tnode) && !type_lookup_iface_entry_L (node, tnode))