summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
036adb1)
Moved tweaking of page settings so it's done at the right time whether in preview or processing mode.
#include <string>
#include <stdlib.h>
#include <string>
#include <stdlib.h>
#include <boost/shared_ptr.hpp>
#include <boost/shared_ptr.hpp>
#include <nsIContent.h>
#include <nsIDocShell.h>
#include <nsIDOMAbstractView.h>
#include <nsIContent.h>
#include <nsIDocShell.h>
#include <nsIDOMAbstractView.h>
+#include <nsIDOMBarProp.h>
#include <nsIDOMDocumentEvent.h>
#include <nsIDOMDocumentView.h>
#include <nsIDOMElement.h>
#include <nsIDOMDocumentEvent.h>
#include <nsIDOMDocumentView.h>
#include <nsIDOMElement.h>
std::vector<std::string> video_paths_;
bool pending_window_update_;
int pending_req_count_;
std::vector<std::string> video_paths_;
bool pending_window_update_;
int pending_req_count_;
+ bool have_tweaked_page_;
std::auto_ptr<temp_file> background_temp_;
struct page_state;
std::auto_ptr<page_state> page_state_;
std::auto_ptr<temp_file> background_temp_;
struct page_state;
std::auto_ptr<page_state> page_state_;
output_dir_(output_dir),
stylesheet_(load_css("file://" WEBDVD_LIB_DIR "/webdvd.css")),
pending_window_update_(false),
output_dir_(output_dir),
stylesheet_(load_css("file://" WEBDVD_LIB_DIR "/webdvd.css")),
pending_window_update_(false),
+ pending_req_count_(0),
+ have_tweaked_page_(false)
{
set_size_request(frame_params_.width, frame_params_.height);
set_resizable(false);
{
set_size_request(frame_params_.width, frame_params_.height);
set_resizable(false);
resource_map_[uri].second = ++page_count;
page_links_.resize(page_count);
resource_map_[uri].second = ++page_count;
page_links_.resize(page_count);
- pending_window_update_ = true;
browser_widget_.load_uri(uri);
}
browser_widget_.load_uri(uri);
}
- 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.
{
// Check whether the load was successful, ignoring this
// pseudo-error.
nsCOMPtr<nsIDOMWindow> dom_window;
check(browser->GetContentDOMWindow(getter_AddRefs(dom_window)));
nsCOMPtr<nsIDOMWindow> 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);
apply_style_sheet(stylesheet_, pres_shell);
+
+ // This actually only needs to be done once.
+ nsCOMPtr<nsIDOMBarProp> 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;
+
+ // 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.
- {
- apply_style_sheet(stylesheet_, pres_shell);
// Start or continue processing links.
process_links(pres_shell, pres_context, dom_window);
// Start or continue processing links.
process_links(pres_shell, pres_context, dom_window);