https://gitlab.com/compiz/compiz-boxmenu/-/merge_requests/2

commit cdbeeefa65e041d07e4c9a3b58f36c1801038cbd
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Wed Apr 29 12:36:21 2020 +0200

    Migrate deskmenu to gtk3
    
    Fixes #9

diff --git a/Makefile b/Makefile
index 6460c39..904f83a 100644
--- a/Makefile
+++ b/Makefile
@@ -15,7 +15,7 @@ $(error Python not found. Version >= 2.7 or 2.6 is required.)
 endif
 
 # Set up compile flags
-CPPFLAGS := `pkg-config --cflags dbus-glib-1 gdk-2.0 gtk+-2.0 libwnck-1.0`
+CPPFLAGS := `pkg-config --cflags dbus-glib-1 gdk-3.0 gtk+-3.0 libwnck-3.0`
 CPPFLAGS_CLIENT := `pkg-config --cflags dbus-glib-1`
 WARNINGS := -Wall -Wextra -Wno-unused-parameter
 ifneq ("$(DEBUG)","")
@@ -23,7 +23,7 @@ ifneq ("$(DEBUG)","")
 else
 	CFLAGS := $(WARNINGS)
 endif
-LDFLAGS := -Wl,--as-needed `pkg-config --libs dbus-glib-1 gdk-2.0 gtk+-2.0 libwnck-1.0`
+LDFLAGS := -Wl,--as-needed `pkg-config --libs dbus-glib-1 gdk-3.0 gtk+-3.0 libwnck-3.0`
 LDFLAGS_CLIENT := -Wl,--as-needed `pkg-config --libs dbus-glib-1`
 
 VERSION=1.1.12
diff --git a/deskmenu-menu.c b/deskmenu-menu.c
index 29becb0..d35e440 100644
--- a/deskmenu-menu.c
+++ b/deskmenu-menu.c
@@ -103,7 +103,7 @@ launcher_activated (GtkWidget *widget,
 {
 	GError *error = NULL;
 
-	if (!gdk_spawn_command_line_on_screen (gdk_screen_get_default (), parse_expand_tilde(command), &error))
+	if (!g_spawn_command_line_async (parse_expand_tilde(command), &error))
 	{
 		deskmenu_widget_error(error);
 	}
@@ -119,7 +119,7 @@ recent_activated (GtkRecentChooser *chooser,
 	file = gtk_recent_chooser_get_current_uri (chooser);
 	full_command = get_full_command(command, file);
 
-	if (!gdk_spawn_command_line_on_screen (gdk_screen_get_default (), parse_expand_tilde(full_command), &error))
+	if (!g_spawn_command_line_async (parse_expand_tilde(full_command), &error))
 	{
 		deskmenu_widget_error(error);
 	}
diff --git a/deskmenu-wnck.c b/deskmenu-wnck.c
index 74946dd..ea72074 100644
--- a/deskmenu-wnck.c
+++ b/deskmenu-wnck.c
@@ -85,7 +85,7 @@ wnck_selector_get_width (GtkWidget  *widget,
 	gtk_widget_ensure_style (widget);
 
 	context = gtk_widget_get_pango_context (widget);
-	metrics = pango_context_get_metrics (context, widget->style->font_desc,
+	metrics = pango_context_get_metrics (context, gtk_widget_get_style(widget)->font_desc,
 			pango_context_get_language (context));
 	char_width = pango_font_metrics_get_approximate_char_width (metrics);
 	pango_font_metrics_unref (metrics);
