text: Only claim primary when focused
authorMatthias Clasen <mclasen@redhat.com>
Sat, 15 Apr 2023 13:02:09 +0000 (15:02 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 21 Apr 2023 07:20:58 +0000 (09:20 +0200)
It does not make sense otherwise, and has unfortunate
side-effects on Wayland.

gtk/gtktext.c

index 98733b0f3602ed711b0e035a55116d8ecd1ab408..7b7d2eb4a5d5ff358c2daf068ca84550020142ab 100644 (file)
@@ -3260,6 +3260,7 @@ gtk_text_focus_changed (GtkEventControllerFocus *controller,
       gtk_text_im_set_focus_in (self);
       gtk_text_reset_blink_time (self);
       gtk_text_check_cursor_blink (self);
+      gtk_text_update_primary_selection (self);
     }
   else /* Focus out */
     {
@@ -5364,6 +5365,9 @@ gtk_text_update_primary_selection (GtkText *self)
   if (!gtk_widget_get_realized (GTK_WIDGET (self)))
     return;
 
+  if (!gtk_widget_has_focus (GTK_WIDGET (self)))
+    return;
+
   clipboard = gtk_widget_get_primary_clipboard (GTK_WIDGET (self));
 
   if (priv->selection_bound != priv->current_pos)