Focus Management Protocol for Non-Spatial Input in Multi-Process Applications
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing operating systems face challenges in providing an intuitive user experience when handling non-spatial input events in combined applications, where multiple program elements execute separately, as they struggle to correctly direct these events to the active component and manage focus transitions efficiently.
Innovation Solution
Implementing a protocol where program elements cooperate to determine which component should process non-spatial input events, with the operating system directing these events to the active component, which can then decide to process them or transfer focus to another component, using services like view managers and navigation services to manage state transitions and inter-process communications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple program elements execute separately as independent applications, then security and component independence are improved, but coordination of non-spatial input events and focus management deteriorates
Solution Approach 1:
The patent introduces an operating system service as an intermediary that mediates between separate program elements. This service receives non-spatial input events from the operating system, determines which program element should process them based on focus state, and directs events appropriately. This resolves the contradiction by enabling coordinated input handling while maintaining separate execution of program elements for security and independence.
Solution Approach 2:
The patent implements a universal protocol that enables multiple independent program elements to participate in a unified focus management system. Each program element can have controls with focus, and the system universally handles non-spatial input events across all elements through the coordinated protocol, allowing independent components to work together seamlessly.
2Reliability
If program elements are segregated into separate applications, then the ability of one component to affect another is reduced, but the complexity of managing focus transitions and input event direction increases
Solution Approach 1:
The operating system service acts as a mediator that simplifies focus management between isolated program elements. Instead of requiring complex direct communication protocols between components, the service centralizes the logic for determining which element should receive input events, reducing the complexity burden on individual program elements while maintaining their isolation.
Solution Approach 2:
The patent implements a feedback mechanism where program elements report their focus state to the operating system service, and the service uses this feedback to determine appropriate event routing. This feedback loop enables automatic coordination without requiring complex pre-configured communication paths, reducing system complexity while maintaining component isolation.
3Ease of operation
If the operating system directs non-spatial input events to the active program element, then proper event routing is achieved, but the active element must constantly manage focus state and event delegation
Solution Approach 1:
The operating system service serves as an intermediary that assumes responsibility for focus state management and event delegation logic. Rather than burdening the active program element with complex state management, the service handles determining which element is active and routes events accordingly, simplifying the workload on individual program elements while maintaining proper event routing.
Solution Approach 2:
Each program element reports its own focus state to the operating system service, enabling self-service information gathering. The service then uses this self-reported information to make routing decisions, reducing the complexity burden on individual elements while achieving proper event routing through centralized coordination.
Data Source
AI summary
A computer system supports a protocol to process directional navigation inputs to a host application and its component, to manage which component is currently active to receive input events. A first component determines whether to transfer focus to a second component. The first component initiates the transfer by sending a request to the second component. Further input events are queued. The second component processes the request to determine how to transfer focus within the second component. The second component indicates to the operating system how focus has been transferred. The operating system updates information to reflect the changes in state of the components, and informs the host and component that the state has been updated. Queued input events then can be released for processing according to the changed focus. Where the components are separate, independent processes, the protocol can be implemented through inter-process communication techniques.


