Запуск окон wayland на Return

This commit is contained in:
2025-11-17 13:45:23 +03:00
parent b8ebf31762
commit c21df94757
2 changed files with 15 additions and 4 deletions

View File

@@ -1,4 +1,5 @@
#include "input-handle.h" #include "input-handle.h"
#include "wayland-runtime.h"
void keyboard_key_handle(xkb_keycode_t kc, xkb_keysym_t ks, enum keyboard_key_state state, struct wayland_window *window) void keyboard_key_handle(xkb_keycode_t kc, xkb_keysym_t ks, enum keyboard_key_state state, struct wayland_window *window)
{ {
@@ -6,11 +7,23 @@ void keyboard_key_handle(xkb_keycode_t kc, xkb_keysym_t ks, enum keyboard_key_st
{ {
char buf[64]; char buf[64];
int n = xkb_keysym_to_utf8(ks, buf, sizeof(buf)); int n = xkb_keysym_to_utf8(ks, buf, sizeof(buf));
if (ks == XKB_KEY_Return)
sprintf(buf, "Return");
if (n > 0) if (n > 0)
printf("keyboard: symbol '%s' (keysym 0x%x) on surface:%p\n", buf, ks, window); printf("keyboard: symbol '%s' (keysym 0x%x) on surface:%p\n", buf, ks, window);
else else
printf("keyboard: keysym 0x%x (no UTF-8 representation)\n", ks); printf("keyboard: keysym 0x%x (no UTF-8 representation)\n", ks);
if(state == KEYBOARD_KEY_STATE_PRESSED)
{
switch (ks)
{
case XKB_KEY_Return:
run_window();
break;
default:
break;
}
}
} }
} }

View File

@@ -53,7 +53,6 @@ static void *window_thread_main(void *arg)
if (window_init(g_display, slot->queue, &slot->window) < 0) if (window_init(g_display, slot->queue, &slot->window) < 0)
{ {
input_cleanup();
wl_event_queue_destroy(slot->queue); wl_event_queue_destroy(slot->queue);
slot->queue = NULL; slot->queue = NULL;
signal_thread_exit(slot); signal_thread_exit(slot);
@@ -73,7 +72,6 @@ static void *window_thread_main(void *arg)
} }
printf("Window #%d closed\n", slot->window.id); printf("Window #%d closed\n", slot->window.id);
input_cleanup();
window_destroy(&slot->window); window_destroy(&slot->window);
if (slot->queue) if (slot->queue)