summaryrefslogtreecommitdiffstats
path: root/draklive-install
diff options
context:
space:
mode:
authorMartin Whitaker <mageia@martin-whitaker.me.uk>2022-11-26 21:51:45 +0000
committerMartin Whitaker <mageia@martin-whitaker.me.uk>2022-11-26 21:51:45 +0000
commit02e5a6a3bb6cdeb5f16f2dd3a3cb6353b06aaaa8 (patch)
tree5c4a0681542bad941252ac928ba56f3e28f07072 /draklive-install
parent8601ff254cd74b6a1c16e325719b8bd24894afa4 (diff)
downloaddraklive-install-02e5a6a3bb6cdeb5f16f2dd3a3cb6353b06aaaa8.tar
draklive-install-02e5a6a3bb6cdeb5f16f2dd3a3cb6353b06aaaa8.tar.gz
draklive-install-02e5a6a3bb6cdeb5f16f2dd3a3cb6353b06aaaa8.tar.bz2
draklive-install-02e5a6a3bb6cdeb5f16f2dd3a3cb6353b06aaaa8.tar.xz
draklive-install-02e5a6a3bb6cdeb5f16f2dd3a3cb6353b06aaaa8.zip
Install callback routine whilst waiting for sub-programs to terminate.
This allows us to respond to window events and check-alive pings (mga#31105)
Diffstat (limited to 'draklive-install')
-rwxr-xr-xdraklive-install15
1 files changed, 15 insertions, 0 deletions
diff --git a/draklive-install b/draklive-install
index c084713..3b8224c 100755
--- a/draklive-install
+++ b/draklive-install
@@ -37,6 +37,21 @@ my $logfile = '/tmp/draklive-install.log';
}
}
+my $child_pid;
+END {
+ run_program::terminate($child_pid) if $child_pid;
+}
+
+sub wait_loop_callback {
+ my ($pid) = @_;
+ $child_pid = $pid;
+ while (Gtk3::events_pending()) {
+ Gtk3::main_iteration();
+ }
+ $child_pid = undef;
+}
+run_program::set_wait_loop_callback(\&wait_loop_callback, 50);
+
($::rootwidth, $::rootheight) = (Gtk3::Gdk::Screen::width, Gtk3::Gdk::Screen::height);
$::real_windowwidth = $::rootwidth > 800 ? 750 : 600;
$::real_windowheight = $::rootheight > 600 ? 500 : 400;