Unified Pointer Class for Cross-Device Input Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in writing software that supports diverse human interface devices due to varying data reporting capabilities and coordinate systems, making it difficult to implement unified input handling and gesture recognition across different devices and frameworks.

Innovation Solution

A unified windowing environment that generates input pointers for raw inputs from various human input devices, using a common interface and data types to communicate with applications, allowing transparent handling of inputs from different devices and enabling device-independent pointer messages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If developers write different sections of code to support different types of devices, then device compatibility is improved, but code complexity increases

Engineering Contradiction:
Improvedevice compatibilityVSAvoidcode complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal pointer class that can handle multiple types of input devices (mouse, touch screen, pen, trackpad) through a single unified interface. The pointer class abstracts device-specific variations, allowing one piece of code to work with all pointer devices without requiring device-specific code sections, thus resolving the contradiction between device compatibility and code complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If developers keep track of multiple coordinate systems, then accuracy of input handling is improved, but development time increases

Engineering Contradiction:
Improvecoordinate system accuracyVSAvoiddevelopment time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent introduces a coordinate transformation intermediary that automatically converts between different coordinate systems (screen coordinates, client area coordinates, control coordinates). This intermediary layer handles the complexity of coordinate system conversions, providing accurate input handling while reducing development time by eliminating the need for developers to manually track and convert between multiple coordinate systems.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If gesture recognizers work on full set of inputs, then gesture recognition accuracy is improved, but flexibility for custom gesture detection decreases

Engineering Contradiction:
Improvegesture recognition accuracyVSAvoidcustom gesture detection flexibility
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent segments the gesture recognition process into two independent layers: a system-level gesture recognizer that works on the full set of inputs for accurate system gestures, and a custom gesture detector that operates on processed pointer events for application-specific gestures. This segmentation allows both full-input gesture recognition and custom gesture detection to coexist without compromising either accuracy or flexibility.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If legacy applications use traditional mouse messages, then backward compatibility is improved, but support for modern unified pointer interfaces decreases

Engineering Contradiction:
Improvebackward compatibilityVSAvoidinterface complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a copy/translation layer that converts unified pointer class messages into traditional mouse messages for legacy applications. This copying mechanism allows legacy applications to continue using traditional mouse messages while the system internally uses the modern unified pointer interface, maintaining backward compatibility without requiring legacy applications to adopt new interfaces.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10564739B2Pointer unification
Publication Date: 2020.02.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10564739B2 patent drawing
  • US10564739B2 patent drawing
  • US10564739B2 patent drawing

AI summary

Embodiments relate to a computing device having storage, a processor, a display, a first human input device, and a second human input device, where the first human input device is in a first category of human input devices and the second human input device is in a second category of human input devices. The computing device may perform a process involving executing a windowing environment that manages windows of applications executing on the computing device. The windowing environment may receive raw inputs from the first and second human input devices and in turn generate input pointers for the raw inputs, respectively. The input pointers may be or include instances of an input pointer class implemented by the windowing environment, the pointer class used by the windowing environment for arbitrary different types of human input pointer devices including the first human input device and the second human input device.