Set a window as active when added by state-change:visible 70/320570/1 accepted/tizen/7.0/unified/20241120.012114
authorYoungsun Suh <youngsun.suh@samsung.com>
Mon, 18 Nov 2024 23:42:45 +0000 (08:42 +0900)
committerYoungsun Suh <youngsun.suh@samsung.com>
Mon, 18 Nov 2024 23:42:45 +0000 (08:42 +0900)
Change-Id: If415de57e7ea2afecea155fd6ad47815f2e83ab1

src/window_tracker.c

index e3e498d0568423d61a181b0efe99de2cf28b71dc..3013bd50e830bd38441ed9c45189f2f5fcc30761 100644 (file)
@@ -449,6 +449,8 @@ static void _on_atspi_window_cb(AtspiEvent *event, void *user_data)
                        if (role == ATSPI_ROLE_WINDOW || keyboard_is) {
                                DEBUG("Append %sWindow", keyboard_is ? "Keyboard " : "");
                                _window_append(wtd, event->source, !keyboard_is, keyboard_is, ACCESSIBLE_WINDOW_ACTIVATE_INFO_DEFAULT_LABEL_ENABLED, EINA_TRUE);
+                               if (!keyboard_is)
+                                       _active_window_set(wtd, event->source, EINA_TRUE);
                        }
                } else { /* Invisible */
                        if (role == ATSPI_ROLE_WINDOW || keyboard_is) {
@@ -460,9 +462,10 @@ static void _on_atspi_window_cb(AtspiEvent *event, void *user_data)
        else if ((!strcmp("object:state-changed:visible", event->type)) && name) {
                AtspiRole role = atspi_accessible_get_role(event->source, NULL);
                if (role == ATSPI_ROLE_FRAME) {
-                       if (event->detail1)
+                       if (event->detail1) {
                                _window_append(wtd, event->source, EINA_TRUE, EINA_FALSE, ACCESSIBLE_WINDOW_ACTIVATE_INFO_DEFAULT_LABEL_ENABLED, EINA_TRUE);
-                       else
+                               _active_window_set(wtd, event->source, EINA_TRUE);
+                       } else
                                _window_remove(wtd, event->source);
                }
        }