[gnome-remote-desktop] rdp-event-queue: Add implementation for NotifyKeyboardKeycode()
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-remote-desktop] rdp-event-queue: Add implementation for NotifyKeyboardKeycode()
- Date: Thu, 4 Mar 2021 18:03:16 +0000 (UTC)
commit 39de38a004d2da69d59d2f8ef76f75c0dfc4df43
Author: Pascal Nowack <Pascal Nowack gmx de>
Date: Sun Feb 14 14:51:47 2021 +0100
rdp-event-queue: Add implementation for NotifyKeyboardKeycode()
src/grd-rdp-event-queue.c | 28 ++++++++++++++++++++++++++++
src/grd-rdp-event-queue.h | 4 ++++
2 files changed, 32 insertions(+)
---
diff --git a/src/grd-rdp-event-queue.c b/src/grd-rdp-event-queue.c
index 74d82c8..b3fb18b 100644
--- a/src/grd-rdp-event-queue.c
+++ b/src/grd-rdp-event-queue.c
@@ -24,6 +24,7 @@
typedef enum _RdpEventType
{
RDP_EVENT_TYPE_NONE,
+ RDP_EVENT_TYPE_INPUT_KBD_KEYCODE,
RDP_EVENT_TYPE_INPUT_KBD_KEYSYM,
RDP_EVENT_TYPE_INPUT_PTR_MOTION_ABS,
RDP_EVENT_TYPE_INPUT_PTR_BUTTON,
@@ -34,6 +35,13 @@ typedef struct _RdpEvent
{
RdpEventType type;
+ /* RDP_EVENT_TYPE_INPUT_KBD_KEYCODE */
+ struct
+ {
+ uint32_t keycode;
+ GrdKeyState state;
+ } input_kbd_keycode;
+
/* RDP_EVENT_TYPE_INPUT_KBD_KEYSYM */
struct
{
@@ -88,6 +96,21 @@ queue_rdp_event (GrdRdpEventQueue *rdp_event_queue,
g_source_set_ready_time (rdp_event_queue->flush_source, 0);
}
+void
+grd_rdp_event_queue_add_input_event_keyboard_keycode (GrdRdpEventQueue *rdp_event_queue,
+ uint32_t keycode,
+ GrdKeyState state)
+{
+ RdpEvent *rdp_event;
+
+ rdp_event = g_malloc0 (sizeof (RdpEvent));
+ rdp_event->type = RDP_EVENT_TYPE_INPUT_KBD_KEYCODE;
+ rdp_event->input_kbd_keycode.keycode = keycode;
+ rdp_event->input_kbd_keycode.state = state;
+
+ queue_rdp_event (rdp_event_queue, rdp_event);
+}
+
void
grd_rdp_event_queue_add_input_event_keyboard_keysym (GrdRdpEventQueue *rdp_event_queue,
uint32_t keysym,
@@ -162,6 +185,11 @@ process_rdp_events (GrdRdpEventQueue *rdp_event_queue)
{
case RDP_EVENT_TYPE_NONE:
break;
+ case RDP_EVENT_TYPE_INPUT_KBD_KEYCODE:
+ grd_session_notify_keyboard_keycode (
+ session, rdp_event->input_kbd_keycode.keycode,
+ rdp_event->input_kbd_keycode.state);
+ break;
case RDP_EVENT_TYPE_INPUT_KBD_KEYSYM:
grd_session_notify_keyboard_keysym (session,
rdp_event->input_kbd_keysym.keysym,
diff --git a/src/grd-rdp-event-queue.h b/src/grd-rdp-event-queue.h
index 1c8d091..41f6497 100644
--- a/src/grd-rdp-event-queue.h
+++ b/src/grd-rdp-event-queue.h
@@ -32,6 +32,10 @@ G_DECLARE_FINAL_TYPE (GrdRdpEventQueue, grd_rdp_event_queue,
GrdRdpEventQueue *grd_rdp_event_queue_new (GrdSessionRdp *session_rdp);
+void grd_rdp_event_queue_add_input_event_keyboard_keycode (GrdRdpEventQueue *rdp_event_queue,
+ uint32_t keycode,
+ GrdKeyState state);
+
void grd_rdp_event_queue_add_input_event_keyboard_keysym (GrdRdpEventQueue *rdp_event_queue,
uint32_t keysym,
GrdKeyState state);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]