git: 86491afd1ece - main - x11/xfce4-terminal: Import middle mouse paste fix from upstream
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 21 Mar 2026 16:59:56 UTC
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
+