Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Mar 2026 16:59:56 +0000
From:      Guido Falsi <madpilot@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 86491afd1ece - main - x11/xfce4-terminal: Import middle mouse paste fix from upstream
Message-ID:  <69bece8c.318a8.41dd4888@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by madpilot:

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

commit 86491afd1ece22a6aea0faee20bf730879892607
Author:     Guido Falsi <madpilot@FreeBSD.org>
AuthorDate: 2026-03-21 16:58:27 +0000
Commit:     Guido Falsi <madpilot@FreeBSD.org>
CommitDate: 2026-03-21 16:58:27 +0000

    x11/xfce4-terminal: Import middle mouse paste fix from upstream
    
    Replace custom revert with upstream provided patch.
    
    Related upstream bug report: https://gitlab.xfce.org/apps/xfce4-terminal/-/issues/385
    
    Obtained from:  https://gitlab.xfce.org/apps/xfce4-terminal/-/commit/765c984f680469f32cd30fe5cea63fa3af6fc1df
---
 x11/xfce4-terminal/Makefile                        |  2 +-
 x11/xfce4-terminal/files/patch-revert-mmb-handling | 51 ----------------------
 .../files/patch-terminal_terminal-widget.c         | 37 ++++++++++++++++
 3 files changed, 38 insertions(+), 52 deletions(-)

diff --git a/x11/xfce4-terminal/Makefile b/x11/xfce4-terminal/Makefile
index 3413f142a433..d6a81ae09056 100644
--- a/x11/xfce4-terminal/Makefile
+++ b/x11/xfce4-terminal/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	xfce4-terminal
 PORTVERSION=	1.2.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	x11 xfce
 MASTER_SITES=	XFCE/apps
 DIST_SUBDIR=	xfce4
diff --git a/x11/xfce4-terminal/files/patch-revert-mmb-handling b/x11/xfce4-terminal/files/patch-revert-mmb-handling
deleted file mode 100644
index 1bda729a82ed..000000000000
--- a/x11/xfce4-terminal/files/patch-revert-mmb-handling
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/terminal/terminal-widget.c b/terminal/terminal-widget.c
-index 6c0f97b8..130c6a68 100644
---- terminal/terminal-widget.c
-+++ terminal/terminal-widget.c
-@@ -575,7 +575,6 @@ terminal_widget_button_press_event (GtkWidget *widget,
-   const GdkModifierType modifiers = gtk_accelerator_get_default_mod_mask ();
-   gboolean committed = FALSE;
-   gboolean intercept = FALSE;
--  gboolean handled = FALSE;
-   gboolean middle_click_opens_uri;
-   guint signal_id = 0;
- 
-@@ -598,7 +597,13 @@ terminal_widget_button_press_event (GtkWidget *widget,
-             }
-         }
- 
--      if (event->button == 3)
-+      /* intercept middle button click that would paste the selection */
-+      if (event->button == 2)
-+        {
-+          g_signal_emit (G_OBJECT (widget), widget_signals[PASTE_SELECTION_REQUEST], 0, NULL);
-+          return TRUE;
-+        }
-+      else if (event->button == 3)
-         {
-           if ((event->state & modifiers) == GDK_SHIFT_MASK)
-             intercept = TRUE;
-@@ -609,21 +614,9 @@ terminal_widget_button_press_event (GtkWidget *widget,
-     }
- 
-   if (!intercept)
--    handled = (*GTK_WIDGET_CLASS (terminal_widget_parent_class)->button_press_event) (widget, event);
-+    (*GTK_WIDGET_CLASS (terminal_widget_parent_class)->button_press_event) (widget, event);
- 
--  if (event->button == 2 && event->type == GDK_BUTTON_PRESS)
--    {
--      /* if handled is true, it means the VteTerminal's handler either already
--       * pasted the selection on its own or passed the middle button click event
--       * to the terminal application. In both cases we are done. Otherwise,
--       * we need to paste the selection now.
--       */
--      if (!handled)
--        {
--          g_signal_emit (G_OBJECT (widget), widget_signals[PASTE_SELECTION_REQUEST], 0, NULL);
--        }
--    }
--  else if (event->button == 3 && event->type == GDK_BUTTON_PRESS)
-+  if (event->button == 3 && event->type == GDK_BUTTON_PRESS)
-     {
-       if (signal_id != 0)
-         g_signal_handler_disconnect (G_OBJECT (widget), signal_id);
diff --git a/x11/xfce4-terminal/files/patch-terminal_terminal-widget.c b/x11/xfce4-terminal/files/patch-terminal_terminal-widget.c
new file mode 100644
index 000000000000..8be9a25d245a
--- /dev/null
+++ b/x11/xfce4-terminal/files/patch-terminal_terminal-widget.c
@@ -0,0 +1,37 @@
+From 765c984f680469f32cd30fe5cea63fa3af6fc1df Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
+Date: Fri, 20 Mar 2026 12:02:17 +0100
+Subject: [PATCH] Be sure to handle primary paste ourselves
+
+Fixes: #385
+Amends: fd3bd9b02d81b19e10e4f9a68ff9c0dc19d06804
+---
+ terminal/terminal-widget.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/terminal/terminal-widget.c b/terminal/terminal-widget.c
+index 6c0f97b8..46756688 100644
+--- terminal/terminal-widget.c
++++ terminal/terminal-widget.c
+@@ -609,7 +609,17 @@ terminal_widget_button_press_event (GtkWidget *widget,
+     }
+ 
+   if (!intercept)
+-    handled = (*GTK_WIDGET_CLASS (terminal_widget_parent_class)->button_press_event) (widget, event);
++    {
++      GtkSettings *settings = gtk_settings_get_default ();
++      gboolean primary_paste_enabled;
++      g_object_get (settings, "gtk-enable-primary-paste", &primary_paste_enabled, NULL);
++
++      /* don't let vte handle primary paste; we want to do it ourselves later, especially
++       * to trigger the unsafe paste dialog if necessary */
++      g_object_set (settings, "gtk-enable-primary-paste", FALSE, NULL);
++      handled = (*GTK_WIDGET_CLASS (terminal_widget_parent_class)->button_press_event) (widget, event);
++      g_object_set (settings, "gtk-enable-primary-paste", primary_paste_enabled, NULL);
++    }
+ 
+   if (event->button == 2 && event->type == GDK_BUTTON_PRESS)
+     {
+-- 
+GitLab
+


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69bece8c.318a8.41dd4888>