Add detection for page loads.

This commit is contained in:
Jack Moffitt 2013-06-27 20:33:56 -06:00
parent 15ec0989f9
commit f363c09f41
2 changed files with 14 additions and 2 deletions

View file

@ -13,7 +13,7 @@ use std::libc::c_int;
use geom::point::Point2D;
use geom::size::Size2D;
use servo_msg::compositor_msg::{IdleRenderState, RenderState, RenderingRenderState};
use servo_msg::compositor_msg::{FinishedLoading, Loading, PerformingLayout, ReadyState};
use servo_msg::compositor_msg::{FinishedLoading, Blank, Loading, PerformingLayout, ReadyState};
use glfw;
@ -79,7 +79,7 @@ impl WindowMethods<Application> for Window {
mouse_down_button: @mut 0,
mouse_down_point: @mut Point2D(0 as c_int, 0),
ready_state: FinishedLoading,
ready_state: Blank,
render_state: IdleRenderState,
throbber_frame: 0,
};
@ -168,6 +168,12 @@ impl WindowMethods<Application> for Window {
/// Sets the render state.
pub fn set_render_state(@mut self, render_state: RenderState) {
if self.ready_state == FinishedLoading &&
self.render_state == RenderingRenderState &&
render_state == IdleRenderState {
// page loaded
}
self.render_state = render_state;
self.update_window_title()
}
@ -178,6 +184,9 @@ impl Window {
fn update_window_title(&self) {
let throbber = THROBBER[self.throbber_frame];
match self.ready_state {
Blank => {
self.glfw_window.set_title(fmt!("blank — Servo"));
}
Loading => {
self.glfw_window.set_title(fmt!("%c Loading — Servo", throbber))
}

View file

@ -40,7 +40,10 @@ pub enum RenderState {
RenderingRenderState,
}
#[deriving(Eq)]
pub enum ReadyState {
/// Informs the compositor that nothing has been done yet. Used for setting status
Blank,
/// Informs the compositor that a page is loading. Used for setting status
Loading,
/// Informs the compositor that a page is performing layout. Used for setting status