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,40 +1,40 @@ PORTNAME= xfce4-terminal PORTVERSION= 1.2.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11 xfce MASTER_SITES= XFCE/apps DIST_SUBDIR= xfce4 MAINTAINER= xfce@FreeBSD.org COMMENT= Terminal emulator for the X windowing system WWW= https://docs.xfce.org/apps/xfce4-terminal/start LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= ${LOCALBASE}/share/xml/docbook/4.4/catalog.xml:textproc/docbook-xml \ ${LOCALBASE}/share/xsl/docbook/html/refentry.xsl:textproc/docbook-xsl \ xsltproc:textproc/libxslt LIB_DEPENDS= libpcre2-8.so:devel/pcre2 USES= compiler:c11 gettext-tools gnome meson pkgconfig tar:xz xfce \ xorg USE_GNOME= cairo gdkpixbuf glib20 gtk30 vte3 USE_XFCE= libmenu xfconf USE_XORG= ice sm x11 MESON_ARGS= -Dlibutempter=enabled OPTIONS_DEFINE= NLS WAYLAND OPTIONS_DEFAULT= WAYLAND OPTIONS_SUB= yes NLS_USES= gettext-runtime WAYLAND_LIB_DEPENDS= libgtk-layer-shell.so:x11-toolkits/gtk-layer-shell WAYLAND_MESON_ENABLED= gtk-layer-shell wayland post-patch-NLS-off: @${REINPLACE_CMD} -e "/^subdir('po')/d" ${WRKSRC}/meson.build .include 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?= +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 +