git: cbce82043086 - main - x11/xfce4-terminal: Fix configuration option not working properly

From: Guido Falsi <madpilot_at_FreeBSD.org>
Date: Tue, 12 Sep 2023 21:51:03 UTC
The branch main has been updated by madpilot:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cbce82043086d85330b08b15be3148934972fd50

commit cbce82043086d85330b08b15be3148934972fd50
Author:     Guido Falsi <madpilot@FreeBSD.org>
AuthorDate: 2023-09-12 21:50:05 +0000
Commit:     Guido Falsi <madpilot@FreeBSD.org>
CommitDate: 2023-09-12 21:50:05 +0000

    x11/xfce4-terminal: Fix configuration option not working properly
    
    The terminal configuration has an option to disable F10 key grabbing
    to control drop down menus. Since the update to 1.1.0 this option
    is broken, not allowing the F10 key to be passed to the terminal
    correctly.
    
    This patch imports an upstream patch to fix the issue.
    
    While here:
    
    - Remove unneeded dependency on libxml2
    - Move INSTALL_TARGET variable to pet portclippy
    
    PR:             273742
    Obtained from:  https://gitlab.xfce.org/apps/xfce4-terminal/-/commit/c576281a780884f9ba1f6abe3d543a3a00f0b48d
---
 x11/xfce4-terminal/Makefile                        |  5 +-
 .../files/patch-terminal_terminal-app.c            | 75 ++++++++++++++++++++++
 2 files changed, 78 insertions(+), 2 deletions(-)

diff --git a/x11/xfce4-terminal/Makefile b/x11/xfce4-terminal/Makefile
index 653e6b427e34..e3eb017d7585 100644
--- a/x11/xfce4-terminal/Makefile
+++ b/x11/xfce4-terminal/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	xfce4-terminal
 PORTVERSION=	1.1.0
+PORTREVISION=	1
 CATEGORIES=	x11 xfce
 MASTER_SITES=	XFCE/apps
 DIST_SUBDIR=	xfce4
@@ -15,13 +16,13 @@ LIB_DEPENDS=	libpcre2-8.so:devel/pcre2
 
 USES=		compiler:c11 gettext-tools gmake gnome pkgconfig tar:bzip2 \
 		xfce xorg
-USE_GNOME=	cairo gdkpixbuf2 glib20 gtk30 intltool libxml2 vte3
+USE_GNOME=	cairo gdkpixbuf2 glib20 gtk30 intltool vte3
 USE_XFCE=	libmenu xfconf
 USE_XORG=	ice sm x11
 
 GNU_CONFIGURE=	yes
-INSTALL_TARGET=	install-strip
 CONFIGURE_ARGS=	--with-utempter
+INSTALL_TARGET=	install-strip
 
 OPTIONS_DEFINE=		NLS
 OPTIONS_SUB=		yes
diff --git a/x11/xfce4-terminal/files/patch-terminal_terminal-app.c b/x11/xfce4-terminal/files/patch-terminal_terminal-app.c
new file mode 100644
index 000000000000..b0952916930f
--- /dev/null
+++ b/x11/xfce4-terminal/files/patch-terminal_terminal-app.c
@@ -0,0 +1,75 @@
+From c576281a780884f9ba1f6abe3d543a3a00f0b48d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
+Date: Thu, 24 Aug 2023 12:50:38 +0200
+Subject: [PATCH] app: Put GtkSettings:gtk-menu-bar-accel overwrite back in
+ place
+
+Fixes: 86abcfefec1c994e1fe7bb94fb615945507ba41c
+Closes: #259
+---
+ terminal/terminal-app.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/terminal/terminal-app.c b/terminal/terminal-app.c
+index 46b4c300..f3aeeeac 100644
+--- terminal/terminal-app.c
++++ terminal/terminal-app.c
+@@ -56,6 +56,7 @@
+ 
+ 
+ static void     terminal_app_finalize                 (GObject            *object);
++static void     terminal_app_update_accels            (TerminalApp        *app);
+ static void     terminal_app_update_windows_accels    (gpointer            user_data);
+ static gboolean terminal_app_accel_map_load           (gpointer            user_data);
+ static gboolean terminal_app_accel_map_save           (gpointer            user_data);
+@@ -129,12 +130,16 @@ static void
+ terminal_app_init (TerminalApp *app)
+ {
+   app->preferences = terminal_preferences_get ();
++  g_signal_connect_swapped (G_OBJECT (app->preferences), "notify::shortcuts-no-menukey",
++                            G_CALLBACK (terminal_app_update_accels), app);
+ 
+   /* remember the original menu bar accel */
+   g_object_get (G_OBJECT (gtk_settings_get_default ()),
+                 "gtk-menu-bar-accel", &app->initial_menu_bar_accel,
+                 NULL);
+ 
++  terminal_app_update_accels (app);
++
+   /* schedule accel map load and update windows when finished */
+   app->accel_map_load_id = gdk_threads_add_idle_full (G_PRIORITY_LOW, terminal_app_accel_map_load, app,
+                                                       terminal_app_update_windows_accels);
+@@ -169,6 +174,7 @@ terminal_app_finalize (GObject *object)
+     }
+   g_slist_free (app->windows);
+ 
++  g_signal_handlers_disconnect_by_func (G_OBJECT (app->preferences), G_CALLBACK (terminal_app_update_accels), app);
+   g_object_unref (G_OBJECT (app->preferences));
+ 
+   if (app->initial_menu_bar_accel != NULL)
+@@ -182,6 +188,22 @@ terminal_app_finalize (GObject *object)
+ 
+ 
+ 
++static void
++terminal_app_update_accels (TerminalApp *app)
++{
++  gboolean no_key;
++
++  g_object_get (G_OBJECT (app->preferences),
++                "shortcuts-no-menukey", &no_key,
++                NULL);
++  g_object_set (G_OBJECT (gtk_settings_get_default ()),
++                "gtk-menu-bar-accel",
++                no_key ? NULL : app->initial_menu_bar_accel,
++                NULL);
++}
++
++
++
+ static void
+ terminal_app_update_windows_accels (gpointer user_data)
+ {
+-- 
+2.42.0
+