Author: bdonlan
Date: 2004-05-29 20:24:16 -0400 (Sat, 29 May 2004)
New Revision: 189
Modified:
trunk/haver-gtk/bin/haver-gtk.pl
trunk/haver-gtk/lib/Haver/Client/Gtk/Page/Channel.pm
trunk/haver-gtk/lib/Haver/Client/Gtk/Pages.pm
Log:
Fix /quit
Modified: trunk/haver-gtk/bin/haver-gtk.pl
===================================================================
--- trunk/haver-gtk/bin/haver-gtk.pl 2004-05-29 20:50:23 UTC (rev 188)
+++ trunk/haver-gtk/bin/haver-gtk.pl 2004-05-30 00:24:16 UTC (rev 189)
@@ -31,6 +31,7 @@
our %globals;
sub POE::Kernel::ASSERT_DEFAULT {1}
+#sub POE::Kernel::TRACE_DEFAULT {1}
use Gtk;
use Gtk::Keysyms;
@@ -357,6 +358,8 @@
$gui{connect_win}{window}->destroy if $gui{connect_win};
$heap->{exiting} = 1;
$kernel->post("haver", "destroy");
+ undef $cmd;
+ undef $pages;
}
Modified: trunk/haver-gtk/lib/Haver/Client/Gtk/Page/Channel.pm
===================================================================
--- trunk/haver-gtk/lib/Haver/Client/Gtk/Page/Channel.pm 2004-05-29
20:50:23 UTC (rev 188)
+++ trunk/haver-gtk/lib/Haver/Client/Gtk/Page/Channel.pm 2004-05-30
00:24:16 UTC (rev 189)
@@ -63,6 +63,7 @@
haver_msg _msg
haver_disconnected _discon
_start _start
+ destroy _destroy
}}, # $page => {qw{
], # object_states =>
)->ID;
@@ -230,4 +231,9 @@
$self->{present} = 0;
}
+sub _destroy {
+ my ($self, $kernel) = @_[OBJECT,KERNEL];
+ $kernel->post('haver', 'unregister', 'all');
+}
+
1;
Modified: trunk/haver-gtk/lib/Haver/Client/Gtk/Pages.pm
===================================================================
--- trunk/haver-gtk/lib/Haver/Client/Gtk/Pages.pm 2004-05-29 20:50:23 UTC
(rev 188)
+++ trunk/haver-gtk/lib/Haver/Client/Gtk/Pages.pm 2004-05-30 00:24:16 UTC
(rev 189)
@@ -125,4 +125,11 @@
}
}
+sub DESTROY {
+ my $self = shift;
+ foreach my $page (@{$self->{pagenum}}) {
+ $page->removed() if $page && $page->can('removed');
+ }
+}
+
1;