# US 7,412,662 B2 · Method and system for redirection of transformed windows

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,412,662 B2
- Document ID: US7412662B2
- Status: Granted
- Kind: B2
- Application number: 10/823,276
- Filed: 2004-04-12
- Published: 2005-10-13
- Granted: 2008-08-12
- Earliest claimed: 2004-04-12
- Assignees: Microsoft Corporation
- Inventors: Mohamed Sadek; Hiro Yamamoto
- Web page: https://patentgrep.com/patent/US7412662B2

## CPC

- G06F 9/451: Execution arrangements for user interfaces
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, and computer-readable media are disclosed for redirecting an input to or from an application via a transformed window on a display device while maintaining the transformed window transparent to the application. A window transformation application program interface coupled with a window manager comprises a desktop window manager that facilitates the transparency. The desktop window manager, through the transformation API incorporates a transformation matrix that is used to transform the window from the application on the display. A mouse (or other input device) hit testing routine is incorporated into the desktop window manager to map an input device point to the transformed window, perform an inverse transform on the input device point if it is associated with the transformed window, before sending an input device message associated with the input device point on to the application. In this way, the application need not be aware of the transformation.

## Claims

### Claim 1

A method for determining whether an input message associated with an input location point belongs to a display window associated with an application, wherein the window has been transformed on the display by a transformation matrix, the method comprising:
determining a bounding rectangle bounding the window transformed by the transformation matrix;
determining whether the input device point is within the bounding rectangle;
performing an inverse transformation on the input device location point if the input device point is within the bounding rectangle, wherein performing the inverse transformation results in a new frame region; and
performing a hit test on the new frame region.

### Claim 2 (depends on 1)

The method of claim 1, wherein the performing operation further comprises:
determining whether the input device point is within a new frame region within the bounding rectangle; and
performing the inverse transformation on the input device location point only if the input device point is within the new frame region within the bounding rectangle.

### Claim 3 (depends on 2)

The method of claim 2, wherein the new frame region is the bounding rectangle and is defined by a pair of triangles.

### Claim 4 (depends on 3)

The method of claim 3, wherein the determining operation further comprises:
using the transform matrix to map the two triangles into transformed space; and
determining whether the input device point is within one of the two triangles.

### Claim 5 (depends on 1)

The method of claim 1, wherein the input location point is a mouse input point.

### Claim 6 (depends on 1)

The method of claim 1, wherein the inverse transformation converts the input device location point to window logical coordinate space for transmission to the application.

### Claim 7

A method for redirecting an input device message from an input device to an application via a transformed window on a display, wherein the transformed window is an application window that has been transformed on the display by a transformation matrix, the method comprising:
receiving the input device message from the input device at an input device location point on the display;
determining whether the location point is within the transformed window;
if the location point is within the transformed window, performing an inverse transform on the location point into its logical coordinate system coordinates;
performing a hit test on a new frame region in the logical coordinate system; and
communicating the device message to the application.

### Claim 8 (depends on 7)

The method of claim 7 wherein the determining operation comprises:
determining whether the input device point is within a bounding rectangle bounding the transformed window; and
performing the inverse transformation on the input device location point if the input device point is within the bounding rectangle.

### Claim 9 (depends on 8)

The method of claim 8 wherein the determining operation further comprises;
determining whether the input device point is within a new frame region within the bounding rectangle; and
performing the inverse transformation on the input device location point only if the input device point is within the new frame region within the bounding rectangle.

### Claim 10 (depends on 9)

The method of claim 9, wherein the new frame region is the bounding rectangle and the bounding rectangle is defined by two adjoining triangles.

### Claim 11 (depends on 10)

The method of claim 10, wherein the determining operation further comprises:
using the transformation matrix to map the two triangles into transformed space; and
determining whether the input device point is within one of the two triangles.

### Claim 12

A system for maintaining an application window on a display that has been transformed by a transformation matrix into a transformed window transparent to an application that originated the application window, the system comprising:
a desktop window manager on a computer system which transforms a window transmitted by the application for display to a transformed window on the display;
a redirection transform application interface coupled to the manager, wherein the redirection transform application performs an inverse transformation that results in a new frame region and performs hit detection on the new frame region; and
an external input coupled to the desktop window manager, wherein messages to and from the application pass through the transform interface to and from the manager to maintain transparency between the transformed display window and the application.

### Claim 13 (depends on 12)

The system of claim 12 wherein the window manager includes an input hit testing routine to determine whether an external input message to the manager is associated with a transformed window and perform an inverse transformation on the input if the input is associated with the transformed window before sending the input message to the application.

### Claim 14 (depends on 13)

The system of claim 13, wherein the external input is a mouse input.

### Claim 15 (depends on 13)

The system of claim 13, wherein the external input is an input message from another application.

### Claim 16 (depends on 13)

The system of claim 13, wherein the input hit test routine comprises a speed hit test routine and a full hit test routine in order to timely process the external input message.

### Claim 17

A computer storage medium encoding a computer program of instructions for performing a method for redirecting an input device message from an input device to an application via a transformed window on a display, wherein the transformed window is an application window that has been transformed on the display by a transformation matrix, by a computer system, said method comprising:
determining a bounding rectangle bounding the window transformed by the transformation matrix;
determining whether the input device point is within the bounding rectangle; and
performing an inverse transformation on the input device location point if the input device point is within the bounding rectangle, wherein performing the inverse transformation results in a new frame region; and
performing a hit test on the new frame region.

### Claim 18 (depends on 17)

The computer storage medium of claim 17, wherein the performing operation further comprises:
determining whether the input device point is within a new frame region within the bounding rectangle; and
performing the inverse transformation on the input device location point only if the input device point is within the new frame region within the bounding rectangle.

### Claim 19 (depends on 17)

The computer storage medium of claim 17, wherein the determining operation further comprises:
using the transform matrix to map two triangles defining the bounding rectangle into transformed space; and
determining whether the input device point is within one of the two triangles.

### Claim 20 (depends on 17)

The computer storage medium of claim 17, the method further comprising:
communicating the device message to the application.
