diff options
| -rw-r--r-- | src/xwidget.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/xwidget.c b/src/xwidget.c index b3fe4026879..bc1225e5f61 100644 --- a/src/xwidget.c +++ b/src/xwidget.c | |||
| @@ -142,6 +142,7 @@ extern Lisp_Object QCwidth, QCheight; | |||
| 142 | struct xwidget_view* xwidget_view_lookup(struct xwidget* xw, struct window *w); | 142 | struct xwidget_view* xwidget_view_lookup(struct xwidget* xw, struct window *w); |
| 143 | Lisp_Object xwidget_spec_value ( Lisp_Object spec, Lisp_Object key, int *found); | 143 | Lisp_Object xwidget_spec_value ( Lisp_Object spec, Lisp_Object key, int *found); |
| 144 | gboolean webkit_osr_damage_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data) ; | 144 | gboolean webkit_osr_damage_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data) ; |
| 145 | gboolean webkit_osr_key_event_callback (GtkWidget *widget, GdkEventKey *event, gpointer data) ; | ||
| 145 | void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview, | 146 | void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview, |
| 146 | WebKitWebFrame *arg1, | 147 | WebKitWebFrame *arg1, |
| 147 | gpointer user_data); | 148 | gpointer user_data); |
| @@ -197,6 +198,10 @@ DEFUN ("make-xwidget", Fmake_xwidget, Smake_xwidget, 7, 7, 0, | |||
| 197 | g_object_set_data (G_OBJECT (xw->widgetwindow_osr), XG_XWIDGET, (gpointer) (xw)); | 198 | g_object_set_data (G_OBJECT (xw->widgetwindow_osr), XG_XWIDGET, (gpointer) (xw)); |
| 198 | /* signals */ | 199 | /* signals */ |
| 199 | g_signal_connect (G_OBJECT ( xw->widgetwindow_osr), "damage-event", G_CALLBACK (webkit_osr_damage_event_callback), NULL); | 200 | g_signal_connect (G_OBJECT ( xw->widgetwindow_osr), "damage-event", G_CALLBACK (webkit_osr_damage_event_callback), NULL); |
| 201 | |||
| 202 | g_signal_connect (G_OBJECT ( xw->widgetwindow_osr), "key-press-event", G_CALLBACK (webkit_osr_key_event_callback), NULL); | ||
| 203 | g_signal_connect (G_OBJECT ( xw->widgetwindow_osr), "key-release-event", G_CALLBACK (webkit_osr_key_event_callback), NULL); | ||
| 204 | |||
| 200 | g_signal_connect (G_OBJECT ( xw->widget_osr), | 205 | g_signal_connect (G_OBJECT ( xw->widget_osr), |
| 201 | "document-load-finished", | 206 | "document-load-finished", |
| 202 | G_CALLBACK (webkit_osr_document_load_finished_callback), | 207 | G_CALLBACK (webkit_osr_document_load_finished_callback), |
| @@ -388,6 +393,14 @@ gboolean webkit_osr_damage_event_callback (GtkWidget *widget, GdkEventExpose *ev | |||
| 388 | } | 393 | } |
| 389 | 394 | ||
| 390 | 395 | ||
| 396 | |||
| 397 | gboolean webkit_osr_key_event_callback (GtkWidget *widget, GdkEventKey *event, gpointer data) | ||
| 398 | { | ||
| 399 | printf("terminating a webkit osr keypress\n"); | ||
| 400 | return FALSE; | ||
| 401 | } | ||
| 402 | |||
| 403 | |||
| 391 | void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview, | 404 | void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview, |
| 392 | WebKitWebFrame *arg1, | 405 | WebKitWebFrame *arg1, |
| 393 | gpointer data) | 406 | gpointer data) |
| @@ -441,6 +454,7 @@ xwidget_osr_button_callback ( GtkWidget *widget, | |||
| 441 | 454 | ||
| 442 | ((GdkEventButton*)eventcopy)->window = gtk_widget_get_window(xw->widget_osr); | 455 | ((GdkEventButton*)eventcopy)->window = gtk_widget_get_window(xw->widget_osr); |
| 443 | gtk_main_do_event(eventcopy); //TODO this will leak events. they should be deallocated later | 456 | gtk_main_do_event(eventcopy); //TODO this will leak events. they should be deallocated later |
| 457 | return TRUE; //dont propagate this event furter | ||
| 444 | } | 458 | } |
| 445 | 459 | ||
| 446 | int xwidget_view_index=0; | 460 | int xwidget_view_index=0; |
| @@ -481,6 +495,9 @@ xwidget_init_view ( | |||
| 481 | xv->widget = gtk_socket_new (); | 495 | xv->widget = gtk_socket_new (); |
| 482 | g_signal_connect_after(xv->widget, "plug-added", G_CALLBACK(xwidget_plug_added), "plug added"); | 496 | g_signal_connect_after(xv->widget, "plug-added", G_CALLBACK(xwidget_plug_added), "plug added"); |
| 483 | g_signal_connect_after(xv->widget, "plug-removed", G_CALLBACK(xwidget_plug_removed), "plug removed"); | 497 | g_signal_connect_after(xv->widget, "plug-removed", G_CALLBACK(xwidget_plug_removed), "plug removed"); |
| 498 | //TODO these doesnt help | ||
| 499 | gtk_widget_add_events(xv->widget, GDK_KEY_PRESS); | ||
| 500 | gtk_widget_add_events(xv->widget, GDK_KEY_RELEASE); | ||
| 484 | } else if (EQ(xww->type, Qslider)) { | 501 | } else if (EQ(xww->type, Qslider)) { |
| 485 | xv->widget = | 502 | xv->widget = |
| 486 | //gtk_hscale_new (GTK_ADJUSTMENT(gtk_adjustment_new (0.0, 0.0, 100.0, 1.0, 10.0, 10.0))); | 503 | //gtk_hscale_new (GTK_ADJUSTMENT(gtk_adjustment_new (0.0, 0.0, 100.0, 1.0, 10.0, 10.0))); |
| @@ -552,6 +569,11 @@ xwidget_init_view ( | |||
| 552 | G_CALLBACK (xwidget_osr_button_callback), NULL); | 569 | G_CALLBACK (xwidget_osr_button_callback), NULL); |
| 553 | g_signal_connect (G_OBJECT ( xv->widget), "motion-notify-event", | 570 | g_signal_connect (G_OBJECT ( xv->widget), "motion-notify-event", |
| 554 | G_CALLBACK (xwidget_osr_button_callback), NULL); | 571 | G_CALLBACK (xwidget_osr_button_callback), NULL); |
| 572 | g_signal_connect (G_OBJECT ( xv->widget), "key-press-event", | ||
| 573 | G_CALLBACK (xwidget_osr_button_callback), NULL); | ||
| 574 | g_signal_connect (G_OBJECT ( xv->widget), "key-release-event", | ||
| 575 | G_CALLBACK (xwidget_osr_button_callback), NULL); | ||
| 576 | |||
| 555 | #endif | 577 | #endif |
| 556 | 578 | ||
| 557 | 579 | ||