Jelajahi Sumber

tray: linux fix tray menu elements not running callbacks (#13626)

Hayden Gray 1 bulan lalu
induk
melakukan
cb5436045d
3 mengubah file dengan 4 tambahan dan 3 penghapusan
  1. 1 0
      src/core/unix/SDL_gtk.c
  2. 1 1
      src/core/unix/SDL_gtk.h
  3. 2 2
      src/tray/unix/SDL_tray.c

+ 1 - 0
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);
     }
 }

+ 1 - 1
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);

+ 2 - 2
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;