diff options
author | Thierry Vignaud <tvignaud@mandriva.org> | 2003-02-24 07:58:53 +0000 |
---|---|---|
committer | Thierry Vignaud <tvignaud@mandriva.org> | 2003-02-24 07:58:53 +0000 |
commit | 36eb050ca80edc58cbaf6a6d547b51e15a7f2334 (patch) | |
tree | 59ae36161e361a315e74484a0a95a017df069f24 | |
parent | 2fa0eb2fdd102857aa5446f63f04bb2e72d94a41 (diff) | |
download | control-center-36eb050ca80edc58cbaf6a6d547b51e15a7f2334.tar control-center-36eb050ca80edc58cbaf6a6d547b51e15a7f2334.tar.gz control-center-36eb050ca80edc58cbaf6a6d547b51e15a7f2334.tar.bz2 control-center-36eb050ca80edc58cbaf6a6d547b51e15a7f2334.tar.xz control-center-36eb050ca80edc58cbaf6a6d547b51e15a7f2334.zip |
clean up embedding: since Gtk2::Socket emit "plug-added" when the embedded app
realize a Gtk2::Plug, it's just cleaner to centralize/consolidate the child
encapsulation in mcc:
- (sig_usr2) move the child exit managment from USR2 signal handler to
"plug-added" gtk+ signal handler
what's more, it allows to remove the somewhat mythical "$::isEmbedded and kill
'USR2', $::CCPID;" in drakxtools
-rwxr-xr-x | control-center | 23 | ||||
-rw-r--r-- | drakconf.spec | 4 |
2 files changed, 14 insertions, 13 deletions
diff --git a/control-center b/control-center index 295a3c9f..771016cb 100755 --- a/control-center +++ b/control-center @@ -603,7 +603,7 @@ $exp_frame->hide; $emb_box->hide; $SIG{USR1} = 'IGNORE'; -$SIG{USR2} = \&sig_usr2; +$SIG{USR2} = 'IGNORE'; #sub { print "GOT DUMMY USR2\n" }; $SIG{TERM} = \&quit_global; $SIG{CHLD} = \&sig_child; #$SIG{CONT} = sub { Gtk2->main }; @@ -642,7 +642,16 @@ sub clean_socket { sub create_hidden_socket_if_needed { hide_socket_and_clean(); # clean_socket(); - gtkpack($emb_box, gtksignal_connect($emb_socket = Gtk2::Socket->new, 'plug-removed' => \&child_just_exited)) unless $socket; + unless ($emb_socket) { + gtkpack($emb_box, gtksignal_connect($emb_socket = Gtk2::Socket->new, 'plug-removed' => \&child_just_exited)) unless $socket; + # emitted when embedded apps begin to draw + $emb_socket->signal_connect('plug-added' => sub { + $left_locked = 0; + $emb_wait->hide; + $emb_socket->show if $emb_socket; + }); + } + $emb_box->set_focus_child($emb_socket); $emb_socket->hide; $emb_wait->hide; @@ -672,14 +681,6 @@ sub sig_child { splash_warning(N("This program has exited abnormally")); } -# got when apps begin to draw -sub sig_usr2 { - $left_locked = 0; - $emb_wait->hide; - $emb_socket->show if $emb_socket; -} - - #------------------------------------------------------------- # processes managment @@ -765,7 +766,7 @@ sub launch_xapp { grep { /$name/ } <X>; }; my @before = &$find_windows(); - fork_("$exec; kill -USR1 $$"); + fork_("$exec"); my @after = &$find_windows(); require Time::HiRes; while (@after ne $xx + @before) { diff --git a/drakconf.spec b/drakconf.spec index ab9d57a7..ad366246 100644 --- a/drakconf.spec +++ b/drakconf.spec @@ -17,8 +17,8 @@ Url: http://www.mandrakelinux.com/en/cvs.php3 Obsoletes: DrakConf Provides: DrakConf BuildRequires: gettext -Requires: mandrake-release, drakxtools >= 9.1-3mdk -Requires: harddrake-ui >= 9.1-3mdk, popt >= 1.6.4-24mdk, usermode +Requires: mandrake-release, drakxtools >= 9.1-5mdk +Requires: harddrake-ui >= 9.1-5mdk, popt >= 1.6.4-24mdk, usermode Requires: perl-GTK2 >= 0.0.cvs.2003.02.12.1-4mdk, XFree86-100dpi-fonts Requires: gtk+2.0 >= 2.2.0-3mdk, perl-MDK-Common => 1.0.4-16mdk Requires: drakcronat >= 0.1.3-1mdk, menudrake >= 0.7.2-1mdk, rxvt, userdrake |