Я пытаюсь отправить (ввести) событие клавиатуры GTK в какое-либо окно, в частности в окно с веб-представлением веб-набора внутри него.У меня проблема со специальными клавишами, такими как 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.
Это часть привязки C к Python, где япросто передайте код функции (key_value) в функцию.Я делаю то же самое для события выпуска ключа (GDK_KEY_RELEASE).В части Python я вызываю эти две функции (нажмите и затем отпустите), и она работает для обычных клавиш, таких как a, s, d и т. Д. Однако она не работает для BackSpace, Enter, Delete и т. Д.