#include "atom/browser/api/event.h"
#include "native_mate/arguments.h"
+#include "native_mate/dictionary.h"
#include "native_mate/object_template_builder.h"
namespace mate {
v8::Persistent<v8::ObjectTemplate> event_template;
void PreventDefault(mate::Arguments* args) {
- args->GetThis()->Set(StringToV8(args->isolate(), "defaultPrevented"),
- v8::True(args->isolate()));
+ mate::Dictionary self(args->isolate(), args->GetThis());
+ self.Set("defaultPrevented", true);
}
// Create a pure JavaScript Event object.
v8::Local<v8::Object> EventEmitter::CreateEvent(v8::Isolate* isolate,
content::WebContents* sender,
- IPC::Message* message) const {
+ IPC::Message* message) {
v8::Local<v8::Object> event;
bool use_native_event = sender && message;
} else {
event = CreateEventObject(isolate);
}
+ mate::Dictionary(isolate, event).Set("sender", GetWrapper(isolate));
return event;
}
private:
v8::Local<v8::Object> CreateEvent(v8::Isolate* isolate,
content::WebContents* sender,
- IPC::Message* message) const;
+ IPC::Message* message);
DISALLOW_COPY_AND_ASSIGN(EventEmitter);
};
# Dispatch IPC messages to the ipc module.
webContents.on 'ipc-message', (event, packed) ->
[channel, args...] = packed
- Object.defineProperty event, 'sender', value: webContents
ipc.emit channel, event, args...
webContents.on 'ipc-message-sync', (event, packed) ->
[channel, args...] = packed
Object.defineProperty event, 'returnValue', set: (value) -> event.sendReply JSON.stringify(value)
- Object.defineProperty event, 'sender', value: webContents
ipc.emit channel, event, args...
webContents.printToPDF = (options, callback) ->