const appWindowNatives = requireNative('app_window_natives');
let keyEventHandled;
bindingUtil.registerEventArgumentMassager(
'input.ime.onKeyEvent', function(args, dispatch) {
const keyData = args[1];
let result = undefined;
try {
const dispatchResult = dispatch(args);
if (dispatchResult && dispatchResult.results) {
result = dispatchResult.results[0];
}
} catch (e) {
result = false;
console.error('Error in event handler for onKeyEvent: ' + e.stack);
}
if (result !== undefined) {
keyEventHandled(keyData.requestId, !!result);
}
});
apiBridge.registerCustomHook(function(api) {
keyEventHandled = api.compiledApi.keyEventHandled;
const originalAddListener = api.compiledApi.onKeyEvent.addListener;
api.compiledApi.onKeyEvent.addListener = function(cb, opt_extraInfo) {
$Function.call(originalAddListener, this, cb);
};
api.apiFunctions.setCustomCallback(
'createWindow', function(callback, windowParams) {
if (!callback) {
return;
}
let view;
if (windowParams && windowParams.frameToken) {
view = appWindowNatives.GetFrame(
windowParams.frameToken, false );
view.id = windowParams.frameToken;
}
callback(view);
});
});