Initial work on making Steam overlay accessible.

This commit is contained in:
Storm Dragon committed 2026-07-10 11:43:35 -04:00
1 parent 278a914630
commit 0858ec441a
4 files changed
+1335 -4

No files matched your search

@@ -182,6 +182,42 @@ class EventManagerCompositorContextRegressionTests(unittest.TestCase):
self.assertFalse(self.manager._ignore(firstEvent))
self.assertTrue(self.manager._ignore(secondEvent))
def test_steam_quick_access_name_changed_survives_without_active_script(self) -> None:
app = object()
event = FakeEvent("object:property-change:accessible-name", source="quick-access")
cthulhu_state.activeScript = None
with (
mock.patch.object(event_manager.debug, "printMessage"),
mock.patch.object(event_manager.debug, "printTokens"),
mock.patch.object(event_manager.debug, "print_log"),
mock.patch.object(event_manager.AXObject, "get_application", return_value=app),
mock.patch.object(event_manager.AXObject, "get_name", return_value="steamwebhelper"),
):
self.manager._isSteamOverlayNavigationEvent = mock.Mock(return_value=True)
self.assertFalse(self.manager._ignore(event))
def test_steam_overlay_navigation_requires_quick_access_context(self) -> None:
app = object()
event = FakeEvent("object:property-change:accessible-name", source="not-quick-access")
self.manager._isSteamApp = mock.Mock(return_value=True)
self.manager._activeX11WindowIsSteamSelectionContext = mock.Mock(return_value=True)
self.manager._eventHasSteamQuickAccessContext = mock.Mock(return_value=False)
self.assertFalse(self.manager._isSteamOverlayNavigationEvent(event, app))
def test_steam_overlay_navigation_rejects_children_changed_churn(self) -> None:
app = object()
event = FakeEvent("object:children-changed:add", source="quick-access", any_data=object())
self.manager._isSteamApp = mock.Mock(return_value=True)
self.manager._activeX11WindowIsSteamSelectionContext = mock.Mock(return_value=True)
self.manager._eventHasSteamQuickAccessContext = mock.Mock(return_value=True)
self.assertFalse(self.manager._isSteamOverlayNavigationEvent(event, app))
def test_steam_focus_lost_burst_is_ignored_but_focus_gain_is_preserved(self) -> None:
app = object()
cthulhu_state.activeScript = mock.Mock(app=app)