From 2d12204d63923af143d447859a055451ff25708b Mon Sep 17 00:00:00 2001
From: Daniel Carl <danielcarl@gmx.de>
Date: Thu, 14 Mar 2019 23:59:31 +0100
Subject: [PATCH] Use the right gdk function to duplicate the key events #546.

This fixes the warning "Event with type 8 not holding a GdkDevice. It
is most likely synthesized outside Gdk/GTK+".
---
 src/events.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/events.c b/src/events.c
index f50ecf0..29b2be9 100644
--- a/src/events.c
+++ b/src/events.c
@@ -1,4 +1,6 @@
 /* Copyright (C) 2016-2019 Michael Mackus */
+#include <gtk/gtk.h>
+
 #include "events.h"
 
 /* this is only to queue GDK key events, in order to later send them if the map didn't match */
@@ -16,7 +18,7 @@ void queue_event(GdkEventKey *e)
     events.queue = g_realloc(events.queue, (events.qlen + 1) * sizeof(GdkEventKey*));
 
     /* copy memory (otherwise event gets cleared by gdk) */
-    events.queue[events.qlen] = g_memdup(e, sizeof(GdkEventKey));
+    events.queue[events.qlen] = gdk_event_copy(e);
     events.qlen ++;
 }
 
@@ -38,7 +40,7 @@ void process_events(void)
 {
     for (int i = 0; i < events.qlen; ++i) {
         process_event(events.queue[i]);
-        g_free(events.queue[i]);
+        gdk_event_free(events.queue[i]);
         /* TODO take into account qk mapped key? */
     }
 
@@ -61,7 +63,7 @@ gboolean is_processing_events(void)
 void free_events(void)
 {
     for (int i = 0; i < events.qlen; ++i) {
-        g_free(events.queue[i]);
+        gdk_event_free(events.queue[i]);
     }
 
     events.qlen = 0;
-- 
2.20.1