Add trusted setter to Event

This commit is contained in:
Manish Goregaokar 2014-11-16 03:45:44 +05:30
parent e2376a64bf
commit c3fdd60adc
2 changed files with 12 additions and 1 deletions

View file

@ -245,3 +245,13 @@ impl Reflectable for Event {
&self.reflector_ &self.reflector_
} }
} }
pub trait EventHelpers {
fn set_trusted(self, trusted: bool);
}
impl<'a> EventHelpers for JSRef<'a, Event> {
fn set_trusted(self, trusted: bool) {
self.trusted.set(trusted);
}
}

View file

@ -15,7 +15,7 @@ use dom::bindings::utils::{Reflectable, Reflector};
use dom::document::{Document, DocumentHelpers}; use dom::document::{Document, DocumentHelpers};
use dom::element::{Element, AttributeHandlers, HTMLFormElementTypeId, HTMLTextAreaElementTypeId, HTMLDataListElementTypeId}; use dom::element::{Element, AttributeHandlers, HTMLFormElementTypeId, HTMLTextAreaElementTypeId, HTMLDataListElementTypeId};
use dom::element::{HTMLInputElementTypeId, HTMLButtonElementTypeId, HTMLObjectElementTypeId, HTMLSelectElementTypeId}; use dom::element::{HTMLInputElementTypeId, HTMLButtonElementTypeId, HTMLObjectElementTypeId, HTMLSelectElementTypeId};
use dom::event::{Event, Bubbles, Cancelable}; use dom::event::{Event, EventHelpers, Bubbles, Cancelable};
use dom::eventtarget::{EventTarget, NodeTargetTypeId}; use dom::eventtarget::{EventTarget, NodeTargetTypeId};
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
use dom::htmlinputelement::HTMLInputElement; use dom::htmlinputelement::HTMLInputElement;
@ -142,6 +142,7 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> {
let event = Event::new(Window(*win), let event = Event::new(Window(*win),
"submit".to_string(), "submit".to_string(),
Bubbles, Cancelable).root(); Bubbles, Cancelable).root();
event.set_trusted(true);
let target: JSRef<EventTarget> = EventTargetCast::from_ref(self); let target: JSRef<EventTarget> = EventTargetCast::from_ref(self);
target.DispatchEvent(*event).ok(); target.DispatchEvent(*event).ok();
if event.DefaultPrevented() { if event.DefaultPrevented() {