CEF_CALLBACK int keyboard_handler_on_key_event(struct _cef_keyboard_handler_t *self, struct _cef_browser_t *browser, const struct _cef_key_event_t *event, XEvent *os_event) { static char16 lastKeyup = 0; if (event->type == KEYEVENT_KEYUP) { if (lastKeyup == 'g' && event->character == 'o') { struct _cef_frame_t* const mainFrame = browser->get_main_frame(browser); DEBUG_PRINT("Calling javascript with _cef_frame_t* pointer: %x", mainFrame); const char szJS[] = "callFromNative('hello', 'from', 'NATIVE');"; cef_string_userfree_t js = cef_string_userfree_alloc(); cef_string_from_ascii(szJS, strlen(szJS), js); mainFrame->execute_java_script(mainFrame, js, 0, 0); cef_string_userfree_free(js); //KAI: this correct? RDEC(mainFrame); } lastKeyup = event->character; } return 0; }
cef_string_utf8_t* callCefDownloadItem_get_full_path(struct _cef_download_item_t* self) { cef_string_userfree_t str = self->get_full_path(self); if (str == NULL) { return NULL; } cef_string_utf8_t * out = cefStringToUtf8(str); cef_string_userfree_free(str); return out; }
cef_string_utf8_t* callCefDownloadItem_get_mime_type(struct _cef_download_item_t* self) { cef_string_userfree_t str = self->get_mime_type(self); cef_string_utf8_t * out = cefStringToUtf8(str); cef_string_userfree_free(str); return out; }