Disable default label when old context root object became new context current object 48/287148/1 accepted/tizen_6.5_unified tizen_6.5 accepted/tizen/6.5/unified/20230201.130004 submit/tizen_6.5/20230127.015228
authorLukasz Oleksak <l.oleksak@samsung.com>
Mon, 16 Jan 2023 11:47:34 +0000 (12:47 +0100)
committerArtur Świgoń <a.swigon@samsung.com>
Fri, 20 Jan 2023 11:13:09 +0000 (12:13 +0100)
Change-Id: I8852a8c53181039b8a2c4a3be1a2373cfcdd0b14

src/navigator.c

index 3f67adb9564376678b9ee4e53c694a8fed2c99d9..a524fde928800a89ce511eb652fd58a5cf883941 100644 (file)
@@ -2589,15 +2589,23 @@ TIZEN_PROD_STATIC void _view_content_changed(AtspiAccessible *root, AtspiRole ro
                return;
        }
 
-       if (default_label_enabled) {
-               _current_highlight_object_set(nd, NULL, HIGHLIGHT_FIRST);
-       } else
-               DEBUG("Current window(%p) does not support default label", root);
-
+       AtspiAccessible *old_root = g_object_ref(flat_navi_context_root_get(nd->flat_navi_context));
        if (flat_navi_context_setup(nd->flat_navi_context, root)) {
                DEBUG("END -- setup failed");
+               g_object_unref(old_root);
                return;
        }
+       AtspiAccessible *new_current = flat_navi_context_current_get(nd->flat_navi_context);
+       if (atspi_accessible_is_equal(old_root, new_current)) {
+               // when returning to old context root as current in new context we should highlight the current immediately without providing default label
+               default_label_enabled = EINA_FALSE;
+       }
+       g_object_unref(old_root);
+
+       if (default_label_enabled) {
+               _current_highlight_object_set(nd, NULL, HIGHLIGHT_FIRST);
+       } else if (new_current)
+               _current_highlight_object_set(nd, new_current, HIGHLIGHT_FIRST);
 
        tw_purge(EINA_TRUE);