diff --git a/src/cthulhu/input_event_manager.py b/src/cthulhu/input_event_manager.py index 595a649..7119485 100644 --- a/src/cthulhu/input_event_manager.py +++ b/src/cthulhu/input_event_manager.py @@ -227,6 +227,14 @@ class InputEventManager: "paused": self._paused, "secure_input_active": self._secure_input_active, "suspended_xterm_script_present": self._scriptWithSuspendedGrabsForXterm is not None, + "xterm_focus_monitor_active": self._xtermFocusHandlerId != 0, + "xterm_recovery_timer_active": self._xtermRecoverySourceId != 0, + "last_ewmh_active_window_id": ( + hex(self._lastEwmhActiveWindowId) + if self._lastEwmhActiveWindowId is not None + else "" + ), + "last_ewmh_xterm_match": self._lastEwmhXtermMatch, "last_input_event_present": self._last_input_event is not None, "last_non_modifier_key_event_present": self._last_non_modifier_key_event is not None, } diff --git a/tests/test_runtime_state_snapshot.py b/tests/test_runtime_state_snapshot.py index 75d5003..6596020 100644 --- a/tests/test_runtime_state_snapshot.py +++ b/tests/test_runtime_state_snapshot.py @@ -80,6 +80,10 @@ class RuntimeStateSnapshotTests(unittest.TestCase): manager._grabbed_bindings = {10: object(), 11: object()} manager._paused = True manager._scriptWithSuspendedGrabsForXterm = object() + manager._xtermFocusHandlerId = 17 + manager._xtermRecoverySourceId = 23 + manager._lastEwmhActiveWindowId = 0x1400010 + manager._lastEwmhXtermMatch = False manager._last_input_event = object() manager._last_non_modifier_key_event = None @@ -91,6 +95,10 @@ class RuntimeStateSnapshotTests(unittest.TestCase): self.assertEqual(1, snapshot["mapped_keysyms"]) self.assertEqual(2, snapshot["grabbed_bindings"]) self.assertTrue(snapshot["suspended_xterm_script_present"]) + self.assertTrue(snapshot["xterm_focus_monitor_active"]) + self.assertTrue(snapshot["xterm_recovery_timer_active"]) + self.assertEqual("0x1400010", snapshot["last_ewmh_active_window_id"]) + self.assertFalse(snapshot["last_ewmh_xterm_match"]) self.assertFalse(snapshot["last_non_modifier_key_event_present"]) def test_script_manager_snapshot_reports_cache_counts(self) -> None: