From e5c0e5efa7fad257ea91f97c2aa0707c0545e1fe Mon Sep 17 00:00:00 2001
From: Matteo Hausner <[EMAIL REDACTED]>
Date: Tue, 20 May 2025 23:34:59 +0200
Subject: [PATCH] Fix #13083 segfault in `SDL_RemoveTrayEntry()` for submenu
entries
Use `g_object_ref_sink()` in `SDL_CreateTraySubmenu()` as introduced with
3be67ced646f9d884c32ce6858f39fe9dd8d634b for the top-level menu.
(cherry picked from commit 22828d5f2a1924916995efa179b7c0af9b81fc7f)
---
src/tray/unix/SDL_tray.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/tray/unix/SDL_tray.c b/src/tray/unix/SDL_tray.c
index 1c305a966ca97..e8a7b0d7ee13e 100644
--- a/src/tray/unix/SDL_tray.c
+++ b/src/tray/unix/SDL_tray.c
@@ -541,7 +541,7 @@ SDL_TrayMenu *SDL_CreateTraySubmenu(SDL_TrayEntry *entry)
return NULL;
}
- entry->submenu->menu = (GtkMenuShell *)gtk_menu_new();
+ entry->submenu->menu = g_object_ref_sink(gtk_menu_new());
entry->submenu->parent_tray = NULL;
entry->submenu->parent_entry = entry;
entry->submenu->nEntries = 0;