Emitting a signal leads to a failed assertion
- From: Ari Jolma <ari jolma tkk fi>
- To: gtk2-perl List <gtk-perl-list gnome org>
- Subject: Emitting a signal leads to a failed assertion
- Date: Fri, 02 Nov 2007 15:37:05 +0200
I have a class (Gtk2::Ex::Geo::Overlay), which is a subclass of
Gtk2::ScrolledWindow. I have connected the 'value-changed' signals of
the scrollbars to a method of the Overlay class. In that method I want
to emit a signal 'extent-changed' for the users of the Overlay widget to
connect to. The code works ok, but Glib prints out a warning:
GLib-GObject-CRITICAL **: g_object_notify: assertion `G_IS_OBJECT
(object)' failed
The system is a bit too large to create a test code quickly. The
essentials are:
package Gtk2::Ex::Geo::Overlay;
use Glib::Object::Subclass
Gtk2::ScrolledWindow::,
signals => {
extent_changed => {},
},
sub my_inits { # another question is why can't I do these in INIT_INSTANCE
my($self) = @_;
my $hs = $self->get_hscrollbar();
$hs->signal_connect("value-changed" => \&value_changed, $self);
}
sub value_changed {
my($scrollbar, $self) = @_;
$self->{offset} = [$self->get_hadjustment()->value(),
$self->get_vadjustment()->value()];
$self->render();
#$self->signal_emit('extent-changed');
#causes a GLib-GObject-CRITICAL **: g_object_notify: assertion
`G_IS_OBJECT (object)' failed
return 1;
}
Best regards,
Ari
--
Prof. Ari Jolma
Geoinformaatio- ja paikannustekniikka / Geoinformation and positioning
Teknillinen Korkeakoulu / Helsinki University of Technology
tel: +358 9 451 3886 address: POBox 1200, 02015 TKK, Finland
Email: ari.jolma at tkk.fi URL: http://www.tkk.fi/~jolma
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]