# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1612947895 0 # Node ID a9018bd91d0419e1649a256d8007b37ab545e728 # Parent 46e60dca828563ba60fd8d327085587a71282e32 GTK4: Fix DW_SIGNAL_ITEM_ENTER callbacks via the keyboard. Remove mouse warning... however the mouse isn't working so might need a second callback. diff -r 46e60dca8285 -r a9018bd91d04 gtk4/dw.c --- a/gtk4/dw.c Wed Feb 10 08:28:32 2021 +0000 +++ b/gtk4/dw.c Wed Feb 10 09:04:55 2021 +0000 @@ -45,7 +45,7 @@ #endif /* Macros to encapsulate running functions on the main thread - * #define _DW_SINGLE_THREADED to disable thread safety encapulation. + * #define _DW_SINGLE_THREADED to disable thread safety encapsulation. * Parameters converted to a pointer array: * [0] Pointer to the thread's event semaphore * [1] Pointer to the funtion's return value @@ -1076,10 +1076,11 @@ if(work.window && GTK_IS_WIDGET(work.window)) { - GtkWidget *widget = work.window; + GtkWidget *widget = GTK_WIDGET(g_object_get_data(G_OBJECT(work.window), "_dw_user")); GdkEvent *event = gtk_event_controller_get_current_event(GTK_EVENT_CONTROLLER(controller)); GdkEventType type = gdk_event_get_event_type(event); - gint button = gdk_button_event_get_button(event); + gint button = (type == GDK_BUTTON_PRESS) ? gdk_button_event_get_button(event) : -1; + /* TODO: Make sure this works. Handle both key and button events together */