diff options
| author | Joakim Verona | 2011-07-25 01:52:58 +0200 |
|---|---|---|
| committer | Joakim Verona | 2011-07-25 01:52:58 +0200 |
| commit | b60646c64ead035bff3e5ba925f768f36964f661 (patch) | |
| tree | 087aad947e1d067ed5172260217c4646c941a021 /src/xwidget.c | |
| parent | 32feb900b6bbe2e2898984ace501fbb6ed234d49 (diff) | |
| download | emacs-b60646c64ead035bff3e5ba925f768f36964f661.tar.gz emacs-b60646c64ead035bff3e5ba925f768f36964f661.zip | |
non-functional xey send
Diffstat (limited to 'src/xwidget.c')
| -rw-r--r-- | src/xwidget.c | 14 |
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 | } |