Keyboard Input Buffering for GUI Widget Focus Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems with graphical user interfaces, users often experience frustration when keyboard input intended for one widget is inadvertently directed to another due to the window's focus policy, leading to lost input data, especially when navigating between windows with advertisements or complex focus rules.

Innovation Solution

Implementing a keyboard device driver that buffers keyboard input intended for a second widget when the focus is on a first widget, prompting the user for confirmation before transferring the input, and providing it to the correct widget upon focus change.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the window's focus policy automatically determines which widget receives keyboard input, then the system operates with simple automatic focus management, but user-inputted data may be lost when focus is directed to the wrong widget

Engineering Contradiction:
Improveautomatic focus managementVSAvoidkeyboard input data
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The system performs preliminary actions by detecting when a window gains focus and proactively identifying the intended target widget based on user input patterns and widget properties, before the actual keyboard input is processed, thereby preventing data loss

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

An intermediary focus management mechanism is introduced between the window focus policy and the widget input reception, which intercepts keyboard input and redirects it to the correct widget based on analysis of widget characteristics and user behavior patterns

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If complex focus policies are implemented to handle advertisements and multiple widgets, then more widgets can be managed within windows, but the difficulty of determining the correct focus target increases

Engineering Contradiction:
Improvewidget focus managementVSAvoidcorrect focus target identification
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The system employs feedback mechanisms by continuously monitoring widget properties, user input patterns, and focus history to dynamically determine the most likely intended target widget, adjusting focus decisions based on this feedback information

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The focus management system changes parameters such as widget priority weights, focus timing thresholds, and input pattern recognition criteria to adapt to different window configurations and user behaviors, making the system versatile across various scenarios

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If the system waits for user confirmation before redirecting keyboard input, then input accuracy improves, but the time required for input processing increases

Engineering Contradiction:
Improveinput target accuracyVSAvoidinput processing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system applies partial confirmation by using heuristics to pre-determine the likely intended target in most cases, only requiring explicit user confirmation when the confidence threshold is not met, thus balancing accuracy with speed

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7346859B2Administration of keyboard input in a computer having a display device supporting a graphical user interface
Publication Date: 2008.03.18 LENOVO SWITZERLAND INTERNATIONAL GMBH
  • US7346859B2 patent drawing
  • US7346859B2 patent drawing
  • US7346859B2 patent drawing

AI summary

Administration of keyboard input in a computer having a display device supporting a graphical user interface (“GUI”), including storing keyboard input intended by a user for a second widget when keyboard focus is on a first widget, wherein the first widget receives no keyboard input; changing keyboard focus to the second widget; and providing the stored keyboard input to the second widget.