From 2d12204d63923af143d447859a055451ff25708b Mon Sep 17 00:00:00 2001 From: Daniel Carl 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 + #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