From: Ben Hutchings Date: Thu, 15 Dec 2005 00:43:33 +0000 (+0000) Subject: Disabled scroll bars (though this doesn't seem to work in every case). X-Git-Tag: 0.5~5 X-Git-Url: https://git.decadent.org.uk/gitweb/?p=videolink.git;a=commitdiff_plain;h=355c6bfe3cb41adf8b34f0ebf8f2cd3759ce1002 Disabled scroll bars (though this doesn't seem to work in every case). Moved tweaking of page settings so it's done at the right time whether in preview or processing mode. --- diff --git a/webdvd.cpp b/webdvd.cpp index 6fb547f..5b3cd9b 100644 --- a/webdvd.cpp +++ b/webdvd.cpp @@ -14,7 +14,6 @@ #include #include -#include #include @@ -30,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -171,6 +171,7 @@ namespace std::vector video_paths_; bool pending_window_update_; int pending_req_count_; + bool have_tweaked_page_; std::auto_ptr background_temp_; struct page_state; std::auto_ptr page_state_; @@ -185,7 +186,8 @@ namespace output_dir_(output_dir), stylesheet_(load_css("file://" WEBDVD_LIB_DIR "/webdvd.css")), pending_window_update_(false), - pending_req_count_(0) + pending_req_count_(0), + have_tweaked_page_(false) { set_size_request(frame_params_.width, frame_params_.height); set_resizable(false); @@ -232,7 +234,6 @@ namespace resource_map_[uri].second = ++page_count; page_links_.resize(page_count); - pending_window_update_ = true; browser_widget_.load_uri(uri); } @@ -251,8 +252,15 @@ namespace } } - if (flags & GTK_MOZ_EMBED_FLAG_STOP - && flags & GTK_MOZ_EMBED_FLAG_IS_WINDOW) + if (flags & GTK_MOZ_EMBED_FLAG_IS_DOCUMENT + && flags & GTK_MOZ_EMBED_FLAG_START) + { + pending_window_update_ = true; + have_tweaked_page_ = false; + } + + if (flags & GTK_MOZ_EMBED_FLAG_IS_WINDOW + && flags & GTK_MOZ_EMBED_FLAG_STOP) { // Check whether the load was successful, ignoring this // pseudo-error. @@ -295,22 +303,32 @@ namespace nsCOMPtr dom_window; check(browser->GetContentDOMWindow(getter_AddRefs(dom_window))); - if (output_dir_.empty()) + // If we haven't done so already, apply the stylesheet and + // disable scrollbars. + if (!have_tweaked_page_) { - // In preview mode, just apply the stylesheet and let the - // user select links. apply_style_sheet(stylesheet_, pres_shell); + + // This actually only needs to be done once. + nsCOMPtr dom_bar_prop; + check(dom_window->GetScrollbars(getter_AddRefs(dom_bar_prop))); + check(dom_bar_prop->SetVisible(false)); + + have_tweaked_page_ = true; + + // Might need to wait a while for things to load or more + // likely for a re-layout. + if (pending_req_count_ > 0) + return true; } - else + + // All further work should only be done if we're not in preview mode. + if (!output_dir_.empty()) { - // If we haven't already started work on this page, apply - // the stylesheet and save a screenshot of its normal - // appearance. + // If we haven't already started work on this page, save a + // screenshot of its normal appearance. if (!page_state_.get()) - { - apply_style_sheet(stylesheet_, pres_shell); save_screenshot(); - } // Start or continue processing links. process_links(pres_shell, pres_context, dom_window);