Revert "Check active window in spi_event_get_text_to_read()" 64/286564/1
authorArtur Świgoń <a.swigon@samsung.com>
Mon, 9 Jan 2023 15:31:04 +0000 (16:31 +0100)
committerSeoyeon Kim <seoyeon2.kim@samsung.com>
Tue, 10 Jan 2023 02:40:15 +0000 (11:40 +0900)
This reverts commit 5b9831e9abc2546204fa5a941603fc6efb9f566f.

Change-Id: I279b77399c3ac582bbd52ea38a1e023d68b1dd56

src/screen_reader_spi.c

index 998f62236fe50f74ed0ce5032483f5e0aeafd8c2..1d3870f51c911ecfa8e7b21dac8b15ec8ec5f97f 100644 (file)
@@ -87,14 +87,19 @@ void free_shtd(SignalHandlingTimerData *shtd)
  */
 static void display_info(const AtspiEvent *event)
 {
-       gchar *unique_id = atspi_accessible_get_unique_id(event->source, NULL);
+       AtspiAccessible *source = event->source;
+       gchar *name = atspi_accessible_get_name(source, NULL);
+       gchar *role = atspi_accessible_get_localized_role_name(source, NULL);
+       gchar *toolkit = atspi_accessible_get_toolkit_name(source, NULL);
 
        DEBUG("--------------------------------------------------------");
-       DEBUG("Event_type: %s; (%d, %d)", event->type, event->detail1, event->detail2);
-       DEBUG("Source: %s", unique_id);
+       DEBUG("Toolkit: %s; Event_type: %s; (%d, %d)", toolkit, event->type, event->detail1, event->detail2);
+       DEBUG("Name: %s; Role: %s; Source: %p", name, role, event->source);
        DEBUG("--------------------------------------------------------");
 
-       g_free(unique_id);
+       g_free(name);
+       g_free(role);
+       g_free(toolkit);
 }
 
 bool allow_recursive_name(AtspiAccessible *obj)
@@ -204,24 +209,6 @@ static char *spi_on_text_delete(SpiData *spi, AtspiEvent *event)
        return g_strdup(ret);
 }
 
-static bool is_active_window_object(AtspiAccessible *accessible)
-{
-       AtspiAccessible *window = atspi_get_active_window();
-       if (!window)
-               return false;
-
-       gchar *accessible_bus_name = atspi_accessible_get_bus_name(accessible, NULL);
-       gchar *window_bus_name = atspi_accessible_get_bus_name(window, NULL);
-
-       bool result = is_same_str(accessible_bus_name, window_bus_name);
-
-       g_free(window_bus_name);
-       g_free(accessible_bus_name);
-       g_object_unref(window);
-
-       return result;
-}
-
 void spi_event_get_text_to_read(
                SpiData *spi,
                char **text_to_read,
@@ -232,17 +219,6 @@ void spi_event_get_text_to_read(
        *text_to_read = NULL;
        *descr_to_read = NULL;
 
-       // Prioritize checking the focused event to enable an early return
-       if (!g_strcmp0(event->type, spi->tracking_signal_name)) {
-               spi->last_caret_position = -1;
-
-               if (event->detail1 == 0)
-                       return;
-       }
-
-       if (!is_active_window_object(event->source))
-               return;
-
        GHashTable *attrs = atspi_accessible_get_attributes(event->source, NULL);
        if (attrs) {
                char *val = g_hash_table_lookup(attrs, "suppress-screen-reader");
@@ -257,11 +233,12 @@ void spi_event_get_text_to_read(
 
        if (!g_strcmp0(event->type, spi->tracking_signal_name)) {
                /* tracking singal "focused" */
-               // note: event->detail1 == 1
-               ReadingComposerData *rc = reading_composer_data_get(event->source);
-               *text_to_read = reading_composer_description_get(rc);
-               *descr_to_read = reading_composer_extended_description_get(rc);
-               reading_composer_data_free(rc);
+               if (event->detail1 == 1) {
+                       ReadingComposerData *rc = reading_composer_data_get(event->source);
+                       *text_to_read = reading_composer_description_get(rc);
+                       *descr_to_read = reading_composer_extended_description_get(rc);
+                       reading_composer_data_free(rc);
+               }
 
        } else if (!g_strcmp0(event->type, CARET_MOVED_SIG)) {
                *text_to_read = spi_on_caret_move_get_text(spi, event);
@@ -295,6 +272,9 @@ void spi_event_get_text_to_read(
        } else if (!g_strcmp0(event->type, VALUE_CHANGED_SIG)) {
                *text_to_read = spi_on_value_changed_get_text(spi, event);
 
+       } else if (!g_strcmp0(event->type, STATE_FOCUSED_SIG)) {
+               spi->ignore_next_caret_move = EINA_TRUE;
+               spi->last_caret_position = -1;
        } else if (!g_strcmp0(event->type, STATE_CHECKED_SIG)) {
                if (event->detail1)
                        *text_to_read = g_strdup(_("IDS_ACCS_TBOPT_CHECKED_TTS"));