GTK キーボード イベントをウィンドウ、特に Webkit Webview を含むウィンドウにディスパッチ (注入) しようとしています。私が抱えている問題は、Backspace、Up、Down などの特殊キーに関するものです。何らかの理由でそれらが適切に挿入されないため、対応する機能がトリガーされません。他のキーについては、完全に機能します。キーボードをウィンドウに集中させ、ウィンドウをウィンドウの z-index スタックの一番上に配置しようとしましたが、役に立ちません。
GdkEvent* const event = gdk_event_new(GDK_KEY_PRESS);
event->key.window = self->window->window;
event->key.send_event = TRUE;
event->key.time = GDK_CURRENT_TIME;
event->key.state = 0; event->key.keyval = key_value;
event->key.hardware_keycode = 0;
event->key.length = 0; event->key.string = 0;
event->key.group = 0;
//key_value is the code for the key.
これは、関数にキーコード (key_value) を渡すだけの C から Python へのバインディング部分です。キーリリースイベント (GDK_KEY_RELEASE) についても同様のことを行います。Python の部分では、これら 2 つの関数 (押してから放す) を呼び出し、a、s、d などの通常のキーでは機能しますが、BackSpace、Enter、Delete などでは機能しません。