From dc5804d64a1f811decab45dabe6867d20d59c577 Mon Sep 17 00:00:00 2001 From: Luke Yelavich Date: Fri, 27 Jan 2017 16:32:02 +1100 Subject: [PATCH 1/3] Use ATK_STATE_SELECTED and ATK_STATE_FOCUSED appropriately for highlight property changes --- libcaja-private/caja-icon-canvas-item.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/libcaja-private/caja-icon-canvas-item.c b/libcaja-private/caja-icon-canvas-item.c index 4eb7f1c05..fa80001ff 100644 --- a/libcaja-private/caja-icon-canvas-item.c +++ b/libcaja-private/caja-icon-canvas-item.c @@ -357,9 +357,11 @@ caja_icon_canvas_item_set_property (GObject *object, { CajaIconCanvasItem *item; CajaIconCanvasItemDetails *details; + AtkObject *accessible; item = CAJA_ICON_CANVAS_ITEM (object); details = item->details; + accessible = atk_gobject_accessible_for_object (G_OBJECT (item)); switch (property_id) { @@ -375,11 +377,8 @@ caja_icon_canvas_item_set_property (GObject *object, details->editable_text = g_strdup (g_value_get_string (value)); if (details->text_util) { - AtkObject *accessible; - gail_text_util_text_setup (details->text_util, details->editable_text); - accessible = atk_gobject_accessible_for_object (G_OBJECT (item)); g_object_notify (G_OBJECT(accessible), "accessible-name"); } @@ -416,6 +415,9 @@ caja_icon_canvas_item_set_property (GObject *object, } details->is_highlighted_for_selection = g_value_get_boolean (value); caja_icon_canvas_item_invalidate_label_size (item); + + atk_object_notify_state_change (accessible, ATK_STATE_SELECTED, + details->is_highlighted_for_selection); break; case PROP_HIGHLIGHTED_AS_KEYBOARD_FOCUS: @@ -424,12 +426,8 @@ caja_icon_canvas_item_set_property (GObject *object, return; } details->is_highlighted_as_keyboard_focus = g_value_get_boolean (value); - - if (details->is_highlighted_as_keyboard_focus) - { - AtkObject *atk_object = atk_gobject_accessible_for_object (object); - atk_focus_tracker_notify (atk_object); - } + atk_object_notify_state_change (accessible, ATK_STATE_FOCUSED, + details->is_highlighted_as_keyboard_focus); break; case PROP_HIGHLIGHTED_FOR_DROP: From b2c2794dc0fbefc1a2dd902a0266afe68db7f79a Mon Sep 17 00:00:00 2001 From: Luke Yelavich Date: Fri, 27 Jan 2017 17:32:16 +1100 Subject: [PATCH 2/3] Replace other instances of atk_focus_tracker_notify with appropriate atk_set_state calls --- libcaja-private/caja-icon-container.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libcaja-private/caja-icon-container.c b/libcaja-private/caja-icon-container.c index 571c40398..3d234ba2a 100644 --- a/libcaja-private/caja-icon-container.c +++ b/libcaja-private/caja-icon-container.c @@ -856,10 +856,10 @@ clear_keyboard_focus (CajaIconContainer *container) } static void inline -emit_atk_focus_tracker_notify (CajaIcon *icon) +emit_atk_focus_tracker_notify (CajaIcon *icon, gboolean focused) { AtkObject *atk_object = atk_gobject_accessible_for_object (G_OBJECT (icon->item)); - atk_focus_tracker_notify (atk_object); + atk_object_notify_state_change (atk_object, ATK_STATE_FOCUSED, focused); } /* Set @icon as the icon currently selected for keyboard operations. */ @@ -882,7 +882,7 @@ set_keyboard_focus (CajaIconContainer *container, "highlighted_as_keyboard_focus", 1, NULL); - emit_atk_focus_tracker_notify (icon); + emit_atk_focus_tracker_notify (icon, TRUE); } static void @@ -2542,7 +2542,7 @@ select_range (CajaIconContainer *container, if (selection_changed && icon2 != NULL) { - emit_atk_focus_tracker_notify (icon2); + emit_atk_focus_tracker_notify (icon2, TRUE); } return selection_changed; } @@ -2568,7 +2568,7 @@ select_one_unselect_others (CajaIconContainer *container, if (selection_changed && icon_to_select != NULL) { - emit_atk_focus_tracker_notify (icon_to_select); + emit_atk_focus_tracker_notify (icon_to_select, TRUE); reveal_icon (container, icon_to_select); } return selection_changed; From cea24ed35ad7f5a22298fe6d921e30a34476ad11 Mon Sep 17 00:00:00 2001 From: Luke Yelavich Date: Fri, 27 Jan 2017 21:49:54 +1100 Subject: [PATCH 3/3] Rename method to reflect its altered functionality --- libcaja-private/caja-icon-container.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libcaja-private/caja-icon-container.c b/libcaja-private/caja-icon-container.c index 3d234ba2a..21466f0b6 100644 --- a/libcaja-private/caja-icon-container.c +++ b/libcaja-private/caja-icon-container.c @@ -856,7 +856,7 @@ clear_keyboard_focus (CajaIconContainer *container) } static void inline -emit_atk_focus_tracker_notify (CajaIcon *icon, gboolean focused) +emit_atk_focus_state_change (CajaIcon *icon, gboolean focused) { AtkObject *atk_object = atk_gobject_accessible_for_object (G_OBJECT (icon->item)); atk_object_notify_state_change (atk_object, ATK_STATE_FOCUSED, focused); @@ -882,7 +882,7 @@ set_keyboard_focus (CajaIconContainer *container, "highlighted_as_keyboard_focus", 1, NULL); - emit_atk_focus_tracker_notify (icon, TRUE); + emit_atk_focus_state_change (icon, TRUE); } static void @@ -2542,7 +2542,7 @@ select_range (CajaIconContainer *container, if (selection_changed && icon2 != NULL) { - emit_atk_focus_tracker_notify (icon2, TRUE); + emit_atk_focus_state_change (icon2, TRUE); } return selection_changed; } @@ -2568,7 +2568,7 @@ select_one_unselect_others (CajaIconContainer *container, if (selection_changed && icon_to_select != NULL) { - emit_atk_focus_tracker_notify (icon_to_select, TRUE); + emit_atk_focus_state_change (icon_to_select, TRUE); reveal_icon (container, icon_to_select); } return selection_changed;