diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-02-15 20:47:23 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-02-21 00:50:59 -0500 |
commit | e3158a1bfb4580b9a9d6901453a4bde02394e6ec (patch) | |
tree | ffa43c3a033640b0ca75e86d02529e95a1aea5fd /gtk/gtkiconview.c | |
parent | 23c67f8c672ee3c0a3e22afd71ac86f96592dca5 (diff) | |
download | gtk+-e3158a1bfb4580b9a9d6901453a4bde02394e6ec.tar.gz |
Make crossing events handled the same way
Diffstat (limited to 'gtk/gtkiconview.c')
-rw-r--r-- | gtk/gtkiconview.c | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index 55cf780542..7b84f53c35 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -166,10 +166,12 @@ static void gtk_icon_view_motion (GtkEventControl double x, double y, gpointer user_data); -static void gtk_icon_view_leave (GtkEventController *controller, - GdkCrossingMode mode, - GdkNotifyType detail, - gpointer user_data); +static void gtk_icon_view_pointer (GtkEventController *controller, + GtkCrossingDirection direction, + double x, + double y, + GdkCrossingMode mode, + gpointer user_data); static void gtk_icon_view_button_press (GtkGestureClick *gesture, int n_press, double x, @@ -965,7 +967,7 @@ gtk_icon_view_init (GtkIconView *icon_view) gtk_widget_add_controller (GTK_WIDGET (icon_view), GTK_EVENT_CONTROLLER (gesture)); controller = gtk_event_controller_motion_new (); - g_signal_connect (controller, "leave", G_CALLBACK (gtk_icon_view_leave), + g_signal_connect (controller, "pointer-change", G_CALLBACK (gtk_icon_view_pointer), icon_view); g_signal_connect (controller, "motion", G_CALLBACK (gtk_icon_view_motion), icon_view); @@ -1881,21 +1883,26 @@ gtk_icon_view_motion (GtkEventController *controller, } static void -gtk_icon_view_leave (GtkEventController *controller, - GdkCrossingMode mode, - GdkNotifyType detail, - gpointer user_data) +gtk_icon_view_pointer (GtkEventController *controller, + GtkCrossingDirection direction, + double x, + double y, + GdkCrossingMode mode, + gpointer user_data) { GtkIconView *icon_view; GtkIconViewPrivate *priv; - icon_view = GTK_ICON_VIEW (user_data); - priv = icon_view->priv; - - if (priv->last_prelight) + if (direction == GTK_CROSSING_OUT) { - gtk_icon_view_queue_draw_item (icon_view, priv->last_prelight); - priv->last_prelight = NULL; + icon_view = GTK_ICON_VIEW (user_data); + priv = icon_view->priv; + + if (priv->last_prelight) + { + gtk_icon_view_queue_draw_item (icon_view, priv->last_prelight); + priv->last_prelight = NULL; + } } } |