Fix hovered link URI not returned by gtk_label_get_current_uri
authorChris Mayo <aklhfex@gmail.com>
Mon, 24 Apr 2023 18:35:47 +0000 (19:35 +0100)
committerChris Mayo <aklhfex@gmail.com>
Mon, 24 Apr 2023 18:35:47 +0000 (19:35 +0100)
This is needed for a query-tooltip handler, as mentioned in the
documentation, when there has been a hover timeout.

Maintain the previous behaviour when the link is clicked and follow the
existing documentation regarding selectable labels.

A notify::cursor handler can now also be used to retrieve the URI of the
link under the cursor.

gtk/gtklabel.c

index ccc9b9a85e49a1935ced8a38201d64f0a8dff023..75878a5d3d4b07c0269c5e546657c7265c74af2c 100644 (file)
@@ -5773,10 +5773,10 @@ gtk_label_get_current_uri (GtkLabel *self)
   if (!self->select_info)
     return NULL;
 
-  if (self->select_info->link_clicked)
-    link = self->select_info->active_link;
-  else
+  if (!self->select_info->link_clicked && self->select_info->selectable)
     link = gtk_label_get_focus_link (self, NULL);
+  else
+    link = self->select_info->active_link;
 
   if (link)
     return link->uri;