/* change flat_navi context root to next top window */
FlatNaviContext *fn_context;
AtspiAccessible *next_top_window;
+ gchar *id = NULL;
+
fn_context = navigator_get_flat_navi_context(atd->view_content_changed_ecd->user_data);
next_top_window = window_tracker_top_window_get(atd->window_tracker_data);
- flat_navi_context_root_change(fn_context, next_top_window);
- gchar *id = atspi_accessible_get_unique_id(next_top_window, NULL);
+ AtspiAccessibleDefaultLabelInfo *dli = atspi_accessible_get_default_label_info(atd->root, NULL);
+ if (dli) {
+ flat_navi_context_root_change(fn_context, dli->obj);
+ id = atspi_accessible_get_unique_id(dli->obj, NULL);
+ // cleanup dli
+ if (dli->attributes)
+ g_hash_table_unref(dli->attributes);
+ if (dli->obj)
+ g_object_unref(dli->obj);
+ g_free(dli);
+ } else {
+ flat_navi_context_root_change(fn_context, next_top_window);
+ id = atspi_accessible_get_unique_id(next_top_window, NULL);
+ }
DEBUG("Root window is changed to: %s", id);
- g_free(id);
+ if(id) g_free(id);
} else if (rect->width > 0 && rect->height > 0)
window_tracker_keyboard_window_append(atd->window_tracker_data);
}