Запуск окон wayland на Return
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user