IP Library Granted Patent US 7,412,662
Granted Patent B2
US 7,412,662 · App. 10/823,276 · Granted Aug 12, 2008

Method and system for redirection of transformed windows

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,412,662
App. No.
10/823,276
Granted
Aug 12, 2008
Kind
B2
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 (51)

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.

2. 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.

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

4. 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.

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

6. 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.

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.

8. 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.

9. 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.

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

11. 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.

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.

13. 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.

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

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

16. 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.

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.

18. 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.

19. 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.

20. The computer storage medium of claim 17 , the method further comprising:

communicating the device message to the application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2004
From: SADEK, MOHAMED; YAMAMOTO, HIRO
To: MICROSOFT CORPORATION
Reel/Frame 015599/0645 →
Continuity (1)
Related Publication 20050229108A1 · Oct 13, 2005