diff options
Diffstat (limited to 'gtk/gtklabel.c')
-rw-r--r-- | gtk/gtklabel.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 77aa220adf..abbf6431ba 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -448,9 +448,11 @@ static void gtk_label_motion (GtkEventControllerMotion *controller, double x, double y, gpointer data); -static void gtk_label_leave (GtkEventControllerMotion *controller, +static void gtk_label_pointer (GtkEventControllerMotion *controller, + GtkCrossingDirection direction, + double x, + double y, GdkCrossingMode mode, - GdkNotifyType detail, gpointer data); static gboolean gtk_label_grab_focus (GtkWidget *widget); @@ -4857,19 +4859,24 @@ gtk_label_motion (GtkEventControllerMotion *controller, } static void -gtk_label_leave (GtkEventControllerMotion *controller, - GdkCrossingMode mode, - GdkNotifyType detail, - gpointer data) +gtk_label_pointer (GtkEventControllerMotion *controller, + GtkCrossingDirection direction, + double x, + double y, + GdkCrossingMode mode, + gpointer data) { GtkLabel *label = GTK_LABEL (data); GtkLabelPrivate *priv = gtk_label_get_instance_private (label); - if (priv->select_info) + if (direction == GTK_CROSSING_OUT) { - priv->select_info->active_link = NULL; - gtk_label_update_cursor (label); - gtk_widget_queue_draw (GTK_WIDGET (label)); + if (priv->select_info) + { + priv->select_info->active_link = NULL; + gtk_label_update_cursor (label); + gtk_widget_queue_draw (GTK_WIDGET (label)); + } } } @@ -5015,8 +5022,8 @@ gtk_label_ensure_select_info (GtkLabel *label) priv->select_info->motion_controller = gtk_event_controller_motion_new (); g_signal_connect (priv->select_info->motion_controller, "motion", G_CALLBACK (gtk_label_motion), label); - g_signal_connect (priv->select_info->motion_controller, "leave", - G_CALLBACK (gtk_label_leave), label); + g_signal_connect (priv->select_info->motion_controller, "pointer-change", + G_CALLBACK (gtk_label_pointer), label); gtk_widget_add_controller (GTK_WIDGET (label), priv->select_info->motion_controller); priv->select_info->provider = g_object_new (GTK_TYPE_LABEL_CONTENT, NULL); |