summaryrefslogtreecommitdiff
path: root/gtk/gtkiconview.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-02-15 20:47:23 -0500
committerMatthias Clasen <mclasen@redhat.com>2020-02-21 00:50:59 -0500
commite3158a1bfb4580b9a9d6901453a4bde02394e6ec (patch)
treeffa43c3a033640b0ca75e86d02529e95a1aea5fd /gtk/gtkiconview.c
parent23c67f8c672ee3c0a3e22afd71ac86f96592dca5 (diff)
downloadgtk+-e3158a1bfb4580b9a9d6901453a4bde02394e6ec.tar.gz
Make crossing events handled the same way
Diffstat (limited to 'gtk/gtkiconview.c')
-rw-r--r--gtk/gtkiconview.c37
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;
+ }
}
}