gint row, col;
+ guint prelight : 1;
guint selected : 1;
guint selected_before_rubberbanding : 1;
GtkIconViewItem *cursor_item;
GtkIconViewItem *last_single_clicked;
+ GtkIconViewItem *last_prelight;
GtkOrientation item_orientation;
else
remove_scroll_timeout (icon_view);
}
+ else
+ {
+ GtkIconViewItem *item, *last_prelight_item;
+ GtkCellRenderer *cell = NULL;
+
+ last_prelight_item = icon_view->priv->last_prelight;
+ item = gtk_icon_view_get_item_at_coords (icon_view,
+ event->x, event->y,
+ FALSE,
+ &cell);
+
+ if (item != NULL)
+ {
+ item->prelight = TRUE;
+ gtk_icon_view_queue_draw_item (icon_view, item);
+ }
+
+ if (last_prelight_item != NULL &&
+ last_prelight_item != item)
+ {
+ last_prelight_item->prelight = FALSE;
+ gtk_icon_view_queue_draw_item (icon_view,
+ icon_view->priv->last_prelight);
+ }
+
+ icon_view->priv->last_prelight = item;
+ }
return TRUE;
}
state |= GTK_STATE_FLAG_SELECTED;
flags |= GTK_CELL_RENDERER_SELECTED;
+ }
+
+ if (item->prelight)
+ {
+ state |= GTK_STATE_FLAG_PRELIGHT;
+ flags |= GTK_CELL_RENDERER_PRELIT;
+ }
- gtk_style_context_set_state (style_context, state);
+ gtk_style_context_set_state (style_context, state);
+ if (item->selected)
+ {
gtk_render_background (style_context, cr,
x - icon_view->priv->item_padding,
y - icon_view->priv->item_padding,
if (item == icon_view->priv->cursor_item)
icon_view->priv->cursor_item = NULL;
+ if (item == icon_view->priv->last_prelight)
+ icon_view->priv->last_prelight = NULL;
+
if (item->selected)
emit = TRUE;
icon_view->priv->anchor_item = NULL;
icon_view->priv->cursor_item = NULL;
icon_view->priv->last_single_clicked = NULL;
+ icon_view->priv->last_prelight = NULL;
icon_view->priv->width = 0;
icon_view->priv->height = 0;
}