aboutsummaryrefslogtreecommitdiffstats
path: root/src/xwidget.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xwidget.c')
-rw-r--r--src/xwidget.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index bd007aad005..b362ca55a1f 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -786,6 +786,28 @@ DEFUN("xwidget-view-info", Fxwidget_view_info , Sxwidget_view_info, 2,2,0, doc:
786 return info; 786 return info;
787} 787}
788 788
789DEFUN ("xwidget-send-keyboard-event", Fxwidget_send_keyboard_event, Sxwidget_send_keyboard_event, 2, 2, 0, doc:/* synthesize a kbd event for a xwidget. */
790 )
791 (Lisp_Object xwidget, Lisp_Object keydescriptor)
792{
793 int keyval = 0x058; //X
794 char *keystring = "";
795
796 struct xwidget *xw = XXWIDGET(xwidget);
797
798 GdkEventKey* ev = (GdkEventKey*)gdk_event_new(GDK_KEY_PRESS);
799 ev->window = gtk_widget_get_window(xw->widget_osr);
800 ev->keyval = keyval;
801 gdk_event_put((GdkEvent*)ev);
802 ev->type = GDK_KEY_RELEASE;
803 gdk_event_put((GdkEvent*)ev);
804 gtk_main_do_event(ev);
805 gdk_event_free((GdkEvent*)ev);
806
807 return Qnil;
808}
809
810
789 811
790DEFUN("xwidget-delete-zombies", Fxwidget_delete_zombies , Sxwidget_delete_zombies, 0,0,0, doc: /* */) 812DEFUN("xwidget-delete-zombies", Fxwidget_delete_zombies , Sxwidget_delete_zombies, 0,0,0, doc: /* */)
791 (void) 813 (void)
@@ -842,6 +864,8 @@ syms_of_xwidget (void)
842 defsubr (&Sxwidget_size_request ); 864 defsubr (&Sxwidget_size_request );
843 defsubr (&Sxwidget_delete_zombies); 865 defsubr (&Sxwidget_delete_zombies);
844 defsubr (&Sxwidget_disable_plugin_for_mime); 866 defsubr (&Sxwidget_disable_plugin_for_mime);
867
868 defsubr (&Sxwidget_send_keyboard_event);
845 DEFSYM (Qxwidget ,"xwidget"); 869 DEFSYM (Qxwidget ,"xwidget");
846 870
847 DEFSYM (Qcxwidget ,":xwidget"); 871 DEFSYM (Qcxwidget ,":xwidget");