X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=webdvd.cpp;h=fa94ccb90abcd410b4ceed506dd2e6ec2bdf7878;hb=6e994af0a7e236de8d3e4dbfed0219f7fc3e1dbf;hp=f8e44005f204f24bcd80a7196e126dad7ff97c6b;hpb=388aa3e7fbf7d7586c998833ab53712a88c8d46a;p=videolink.git diff --git a/webdvd.cpp b/webdvd.cpp index f8e4400..fa94ccb 100644 --- a/webdvd.cpp +++ b/webdvd.cpp @@ -1,4 +1,4 @@ -// Copyright 2005-6 Ben Hutchings . +// Copyright 2005-6 Ben Hutchings . // See the file "COPYING" for licence details. #include @@ -169,6 +169,7 @@ namespace dvd_contents::pgc_ref add_menu(const std::string & uri); dvd_contents::pgc_ref add_title(const std::string & uri); void load_next_page(); + bool on_idle(); void on_net_state_change(const char * uri, gint flags, guint status); bool browser_is_busy() const { @@ -220,11 +221,12 @@ namespace add(browser_widget_); browser_widget_.show(); + Glib::signal_idle().connect( + SigC::slot(*this, &webdvd_window::on_idle)); browser_widget_.signal_net_state().connect( SigC::slot(*this, &webdvd_window::on_net_state_change)); add_menu(main_page_uri); - load_next_page(); } bool webdvd_window::is_finished() const @@ -302,6 +304,12 @@ namespace browser_widget_.load_uri(uri); } + bool webdvd_window::on_idle() + { + load_next_page(); + return false; // don't call again thankyou + } + void webdvd_window::on_net_state_change(const char * uri, gint flags, guint status) { @@ -1033,7 +1041,9 @@ int main(int argc, char ** argv) // Run the browser/converter webdvd_window window(frame_params, menu_url, output_dir, encoder); - Gtk::Main::run(window); + window.show(); + window.signal_hide().connect(SigC::slot(&Gtk::Main::quit)); + Gtk::Main::run(); return ((preview_mode || window.is_finished()) ? EXIT_SUCCESS