*** GladeXML.pm.orig Mon Oct 14 13:50:20 2002 --- GladeXML.pm Mon Oct 14 13:50:29 2002 *************** *** 30,35 **** --- 30,36 ---- sub dl_load_flags {0x01} my $verbose = 0; + my %signal_ids; sub import { my $self = shift; *************** *** 43,57 **** sub _connect_helper { my ($handler_name, $object, $signal_name, $signal_data, $connect_object, $after, $handler, @data) = @_; ! no strict qw/refs/; if ($connect_object) { my ($func) = $after? "signal_connect_object_after" : "signal_connect_object"; ! $object->$func ($signal_name, $connect_object, $handler, @data, $signal_data); } else { my ($func) = $after? "signal_connect_after" : "signal_connect"; ! $object->$func ($signal_name, $handler, $signal_data); } } --- 44,60 ---- sub _connect_helper { my ($handler_name, $object, $signal_name, $signal_data, $connect_object, $after, $handler, @data) = @_; ! no strict qw/refs/; if ($connect_object) { my ($func) = $after? "signal_connect_object_after" : "signal_connect_object"; ! $signal_ids{$object}{$signal_name}{$handler_name} = ! $object->$func ($signal_name, $connect_object, $handler, @data, $signal_data); } else { my ($func) = $after? "signal_connect_after" : "signal_connect"; ! $signal_ids{$object}{$signal_name}{$handler_name} = ! $object->$func ($signal_name, $handler, $signal_data); } } *************** *** 59,65 **** my ($handler_name, $object, $signal_name, $signal_data, $connect_object, $after, $package) = @_; my ($handler) = $handler_name; ! no strict qw/refs/; if (ref $package) { --- 62,68 ---- my ($handler_name, $object, $signal_name, $signal_data, $connect_object, $after, $package) = @_; my ($handler) = $handler_name; ! no strict qw/refs/; if (ref $package) { *************** *** 71,80 **** if ($connect_object) { my ($func) = $after? "signal_connect_object_after" : "signal_connect_object"; ! $object->$func ($signal_name, $connect_object, $handler, $signal_data); } else { my ($func) = $after? "signal_connect_after" : "signal_connect"; ! $object->$func ($signal_name, $handler, $signal_data); } } --- 74,85 ---- if ($connect_object) { my ($func) = $after? "signal_connect_object_after" : "signal_connect_object"; ! $signal_ids{$object}{$signal_name}{$handler_name} = ! $object->$func ($signal_name, $connect_object, $handler, $signal_data); } else { my ($func) = $after? "signal_connect_after" : "signal_connect"; ! $signal_ids{$object}{$signal_name}{$handler_name} = ! $object->$func ($signal_name, $handler, $signal_data); } } *************** *** 90,95 **** --- 95,105 ---- my ($chunk); ($package, undef, undef) = caller() unless $package; $self->signal_autoconnect_full(\&_autoconnect_helper, $package); + } + + sub get_signal_id { + # $_[0] is a reference to $self + return($signal_ids{$_[1]}{$_[2]}{$_[3]}); } sub _init_handler {