mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-14 12:41:07 +00:00
Ensure that GtkIconView items get redrawn when the focus cell changes.
Seems the redraw was not happenning from keynav when set_focus_cell() was called because keynav already updates the focus-cell. Now we just unconditionally redraw the focus item when set_focus_cell() is called.
This commit is contained in:
parent
bab0f5a5c1
commit
4d8c7c5782
@ -3083,6 +3083,13 @@ gtk_icon_view_set_cursor_item (GtkIconView *icon_view,
|
||||
AtkObject *item_obj;
|
||||
AtkObject *cursor_item_obj;
|
||||
|
||||
/* When hitting this path from keynav, the focus cell is
|
||||
* already set, we dont need to notify the atk object
|
||||
* but we still need to queue the draw here (in the case
|
||||
* that the focus cell changes but not the cursor item).
|
||||
*/
|
||||
gtk_icon_view_queue_draw_item (icon_view, item);
|
||||
|
||||
if (icon_view->priv->cursor_item == item &&
|
||||
(cursor_cell == NULL || cursor_cell == gtk_cell_area_get_focus_cell (icon_view->priv->cell_area)))
|
||||
return;
|
||||
@ -3108,8 +3115,6 @@ gtk_icon_view_set_cursor_item (GtkIconView *icon_view,
|
||||
if (!gtk_cell_area_get_focus_cell (icon_view->priv->cell_area))
|
||||
gtk_cell_area_focus (icon_view->priv->cell_area, GTK_DIR_TAB_FORWARD);
|
||||
}
|
||||
|
||||
gtk_icon_view_queue_draw_item (icon_view, item);
|
||||
|
||||
/* Notify that accessible focus object has changed */
|
||||
item_obj = atk_object_ref_accessible_child (obj, item->index);
|
||||
|
Loading…
Reference in New Issue
Block a user