aboutsummaryrefslogtreecommitdiffstats
path: root/src/xwidget.c
diff options
context:
space:
mode:
authorJoakim Verona2011-07-25 01:52:58 +0200
committerJoakim Verona2011-07-25 01:52:58 +0200
commitb60646c64ead035bff3e5ba925f768f36964f661 (patch)
tree087aad947e1d067ed5172260217c4646c941a021 /src/xwidget.c
parent32feb900b6bbe2e2898984ace501fbb6ed234d49 (diff)
downloademacs-b60646c64ead035bff3e5ba925f768f36964f661.tar.gz
emacs-b60646c64ead035bff3e5ba925f768f36964f661.zip
non-functional xey send
Diffstat (limited to 'src/xwidget.c')
-rw-r--r--src/xwidget.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index b362ca55a1f..6732fad02d5 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -790,6 +790,7 @@ DEFUN ("xwidget-send-keyboard-event", Fxwidget_send_keyboard_event, Sxwidget_sen
790 ) 790 )
791 (Lisp_Object xwidget, Lisp_Object keydescriptor) 791 (Lisp_Object xwidget, Lisp_Object keydescriptor)
792{ 792{
793 //TODO this code crashes and ive tried many different strategies
793 int keyval = 0x058; //X 794 int keyval = 0x058; //X
794 char *keystring = ""; 795 char *keystring = "";
795 796
@@ -798,11 +799,16 @@ DEFUN ("xwidget-send-keyboard-event", Fxwidget_send_keyboard_event, Sxwidget_sen
798 GdkEventKey* ev = (GdkEventKey*)gdk_event_new(GDK_KEY_PRESS); 799 GdkEventKey* ev = (GdkEventKey*)gdk_event_new(GDK_KEY_PRESS);
799 ev->window = gtk_widget_get_window(xw->widget_osr); 800 ev->window = gtk_widget_get_window(xw->widget_osr);
800 ev->keyval = keyval; 801 ev->keyval = keyval;
801 gdk_event_put((GdkEvent*)ev); 802 ev->time = 0;
803 GdkDeviceManager* manager = gdk_display_get_device_manager(gdk_window_get_display(ev->window));
804 gdk_event_set_device (ev, gdk_device_manager_get_client_pointer(manager));
805 //gdk_event_put((GdkEvent*)ev);
806 g_signal_emit_by_name(ev->window,"key-press-event", ev);
802 ev->type = GDK_KEY_RELEASE; 807 ev->type = GDK_KEY_RELEASE;
803 gdk_event_put((GdkEvent*)ev); 808 //gdk_event_put((GdkEvent*)ev);
804 gtk_main_do_event(ev); 809 g_signal_emit_by_name(ev->window,"key-release-event", ev);
805 gdk_event_free((GdkEvent*)ev); 810 //gtk_main_do_event(ev);
811 //gdk_event_free((GdkEvent*)ev);
806 812
807 return Qnil; 813 return Qnil;
808} 814}