mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Add UIEvent::new_uninitialized().
This commit is contained in:
parent
146eccdf80
commit
ac288f6657
3 changed files with 20 additions and 10 deletions
|
@ -532,8 +532,8 @@ impl<'a> DocumentMethods for JSRef<'a, Document> {
|
||||||
|
|
||||||
match interface.to_ascii_lower().as_slice() {
|
match interface.to_ascii_lower().as_slice() {
|
||||||
// FIXME: Implement CustomEvent (http://dom.spec.whatwg.org/#customevent)
|
// FIXME: Implement CustomEvent (http://dom.spec.whatwg.org/#customevent)
|
||||||
"uievents" | "uievent" => Ok(EventCast::from_temporary(UIEvent::new(&*window))),
|
|
||||||
"mouseevents" | "mouseevent" => Ok(EventCast::from_temporary(MouseEvent::new(&*window))),
|
"mouseevents" | "mouseevent" => Ok(EventCast::from_temporary(MouseEvent::new(&*window))),
|
||||||
|
"uievents" | "uievent" => Ok(EventCast::from_temporary(UIEvent::new_uninitialized(&*window))),
|
||||||
"htmlevents" | "events" | "event" => Ok(Event::new(&*window)),
|
"htmlevents" | "events" | "event" => Ok(Event::new(&*window)),
|
||||||
_ => Err(NotSupported)
|
_ => Err(NotSupported)
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,19 +36,30 @@ impl UIEvent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new(window: &JSRef<Window>) -> Temporary<UIEvent> {
|
pub fn new_uninitialized(window: &JSRef<Window>) -> Temporary<UIEvent> {
|
||||||
reflect_dom_object(~UIEvent::new_inherited(UIEventTypeId),
|
reflect_dom_object(~UIEvent::new_inherited(UIEventTypeId),
|
||||||
window,
|
window,
|
||||||
UIEventBinding::Wrap)
|
UIEventBinding::Wrap)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn new(window: &JSRef<Window>,
|
||||||
|
type_: DOMString,
|
||||||
|
can_bubble: bool,
|
||||||
|
cancelable: bool,
|
||||||
|
view: Option<JSRef<Window>>,
|
||||||
|
detail: i32) -> Temporary<UIEvent> {
|
||||||
|
let mut ev = UIEvent::new_uninitialized(window).root();
|
||||||
|
ev.InitUIEvent(type_, can_bubble, cancelable, view, detail);
|
||||||
|
Temporary::from_rooted(&*ev)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn Constructor(owner: &JSRef<Window>,
|
pub fn Constructor(owner: &JSRef<Window>,
|
||||||
type_: DOMString,
|
type_: DOMString,
|
||||||
init: &UIEventBinding::UIEventInit) -> Fallible<Temporary<UIEvent>> {
|
init: &UIEventBinding::UIEventInit) -> Fallible<Temporary<UIEvent>> {
|
||||||
let mut ev = UIEvent::new(owner).root();
|
let event = UIEvent::new(owner, type_,
|
||||||
ev.InitUIEvent(type_, init.parent.bubbles, init.parent.cancelable,
|
init.parent.bubbles, init.parent.cancelable,
|
||||||
init.view.root_ref(), init.detail);
|
init.view.root_ref(), init.detail);
|
||||||
Ok(Temporary::from_rooted(&*ev))
|
Ok(event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ use dom::document::{Document, HTMLDocument, DocumentMethods, DocumentHelpers};
|
||||||
use dom::element::{Element, AttributeHandlers};
|
use dom::element::{Element, AttributeHandlers};
|
||||||
use dom::event::{Event_, ResizeEvent, ReflowEvent, ClickEvent, MouseDownEvent, MouseMoveEvent, MouseUpEvent};
|
use dom::event::{Event_, ResizeEvent, ReflowEvent, ClickEvent, MouseDownEvent, MouseMoveEvent, MouseUpEvent};
|
||||||
use dom::event::{Event, EventMethods};
|
use dom::event::{Event, EventMethods};
|
||||||
use dom::uievent::{UIEvent, UIEventMethods};
|
use dom::uievent::UIEvent;
|
||||||
use dom::eventtarget::{EventTarget, EventTargetHelpers};
|
use dom::eventtarget::{EventTarget, EventTargetHelpers};
|
||||||
use dom::node;
|
use dom::node;
|
||||||
use dom::node::{Node, NodeHelpers};
|
use dom::node::{Node, NodeHelpers};
|
||||||
|
@ -1093,9 +1093,8 @@ impl ScriptTask {
|
||||||
Some(mut window) => {
|
Some(mut window) => {
|
||||||
// http://dev.w3.org/csswg/cssom-view/#resizing-viewports
|
// http://dev.w3.org/csswg/cssom-view/#resizing-viewports
|
||||||
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#event-type-resize
|
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#event-type-resize
|
||||||
let mut uievent = UIEvent::new(&*window).root();
|
let mut uievent = UIEvent::new(&window.clone(), "resize".to_owned(), false, false,
|
||||||
uievent.InitUIEvent("resize".to_owned(), false, false,
|
Some((*window).clone()), 0i32).root();
|
||||||
Some((*window).clone()), 0i32);
|
|
||||||
let event: &mut JSRef<Event> = EventCast::from_mut_ref(&mut *uievent);
|
let event: &mut JSRef<Event> = EventCast::from_mut_ref(&mut *uievent);
|
||||||
|
|
||||||
let wintarget: &mut JSRef<EventTarget> = EventTargetCast::from_mut_ref(&mut *window);
|
let wintarget: &mut JSRef<EventTarget> = EventTargetCast::from_mut_ref(&mut *window);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue