From cb5436045d22f327d2bbb6f4bd2e9d31a9db6a00 Mon Sep 17 00:00:00 2001 From: Hayden Gray <35206453+A1029384756@users.noreply.github.com> Date: Sun, 3 Aug 2025 10:22:32 -0400 Subject: [PATCH] tray: linux fix tray menu elements not running callbacks (#13626) --- src/core/unix/SDL_gtk.c | 1 + src/core/unix/SDL_gtk.h | 2 +- src/tray/unix/SDL_tray.c | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/core/unix/SDL_gtk.c b/src/core/unix/SDL_gtk.c index a2c620eff0..323b417bd4 100644 --- a/src/core/unix/SDL_gtk.c +++ b/src/core/unix/SDL_gtk.c @@ -223,5 +223,6 @@ void SDL_UpdateGtk(void) { if (IsGtkInit()) { gtk.g.main_context_iteration(sdl_main_context, GTK_FALSE); + gtk.g.main_context_iteration(NULL, GTK_FALSE); } } diff --git a/src/core/unix/SDL_gtk.h b/src/core/unix/SDL_gtk.h index e76720ddb6..e966dac45e 100644 --- a/src/core/unix/SDL_gtk.h +++ b/src/core/unix/SDL_gtk.h @@ -74,7 +74,7 @@ typedef struct _GtkSettings GtkSettings; typedef struct SDL_GtkContext { /* Glib 2.0 */ - struct + struct { gulong (*signal_connect)(gpointer instance, const gchar *detailed_signal, void *c_handler, gpointer data); gulong (*signal_connect_data)(gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer data, GClosureNotify destroy_data, SDL_GConnectFlags connect_flags); diff --git a/src/tray/unix/SDL_tray.c b/src/tray/unix/SDL_tray.c index e43c2c245a..0671badda0 100644 --- a/src/tray/unix/SDL_tray.c +++ b/src/tray/unix/SDL_tray.c @@ -166,7 +166,7 @@ struct SDL_Tray { GtkMenuShell *menu_cached; }; -static void call_callback(GtkMenuItem *item, GParamSpec *pspec, gpointer ptr) +static void call_callback(GtkMenuItem *item, gpointer ptr) { SDL_TrayEntry *entry = ptr; @@ -404,7 +404,7 @@ SDL_TrayMenu *SDL_CreateTraySubmenu(SDL_TrayEntry *entry) SDL_SetError("Cannot create submenu for entry not created with SDL_TRAYENTRY_SUBMENU"); return NULL; } - + SDL_GtkContext *gtk = SDL_Gtk_EnterContext(); if (!gtk) { return NULL;