I am trying to create a GTK window and send seval mouse events to it. My code currently is the following:
#include <webkit2/webkit2.h>
#include <gtk/gtk.h>
// ...
WebKitWebView *web_view (nullptr);
GtkWidget *main_window (nullptr);
gtk_init (&argc, &argv);
main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (main_window),
1000,
1000);
web_view = WEBKIT_WEB_VIEW (webkit_web_view_new ());
gtk_container_add (GTK_CONTAINER (main_window), GTK_WIDGET (web_view));
g_signal_connect (main_window, "destroy", G_CALLBACK (destroyWindowCb),
NULL);
webkit_web_view_load_uri (web_view, "https://google.com");
gtk_widget_show_all (main_window);
gtk_main ();
I have tried to create key events like this: GdkEvent *event = gdk_event_new (GDK_KEY_PRESS); GdkEventKey *key_event = (GdkEventKey *)event;
key_event->window = gtk_widget_get_window (widget);
key_event->send_event = TRUE;
key_event->time = gtk_get_current_event_time ();
key_event->state = 0;
key_event->keyval = **GDK_KEY_Up;**
key_event->length = 0;
key_event->string = "";
key_event->hardware_keycode = 0;
key_event->group = 0;
key_event->is_modifier = 0;
GdkDevice *device = gdk_seat_get_keyboard (
gdk_display_get_default_seat (gdk_display_get_default ()));
gdk_event_set_device (event, device);
gtk_main_do_event (event);
gdk_event_free (event);
I also tried the following code:
gtk_test_widget_send_key (GTK_WIDGET (widget), GTK_ARROW_UP,
(GdkModifierType)0);
However, this does not work. Any pointers?