From 913b7c23b883b55778bd6a3207308b6f0c29894f Mon Sep 17 00:00:00 2001 From: Adam Purkrt Date: Tue, 29 Oct 2019 14:00:00 +0100 Subject: [PATCH] Fix for the bug 11806. --- exo/exo-icon-view.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/exo/exo-icon-view.c b/exo/exo-icon-view.c index b392575..2e3e5e9 100644 --- a/exo/exo-icon-view.c +++ b/exo/exo-icon-view.c @@ -1708,7 +1708,7 @@ exo_icon_view_realize (GtkWidget *widget) #else # define GDK_WA_COLORMAP 0 #endif - attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK; + attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; gtk_widget_set_window (widget, gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask)); gdk_window_set_user_data (gtk_widget_get_window (widget), widget); @@ -2977,10 +2977,19 @@ static gboolean exo_icon_view_leave_notify_event (GtkWidget *widget, GdkEventCrossing *event) { + ExoIconView *icon_view = EXO_ICON_VIEW (widget); + /* reset cursor to default */ if (gtk_widget_get_realized (widget)) gdk_window_set_cursor (gtk_widget_get_window (widget), NULL); + if (G_LIKELY (icon_view->priv->prelit_item != NULL)) + { + /* reset the prelit item */ + exo_icon_view_queue_draw_item (icon_view, icon_view->priv->prelit_item); + icon_view->priv->prelit_item = NULL; + } + /* call the parent's leave_notify_event (if any) */ if (GTK_WIDGET_CLASS (exo_icon_view_parent_class)->leave_notify_event != NULL) return (*GTK_WIDGET_CLASS (exo_icon_view_parent_class)->leave_notify_event) (widget, event); -- 2.23.0