IP Library Granted Patent US 8,095,865
Granted Patent B2
US 8,095,865 · App. 11/943,603 · Granted Jan 10, 2012

Layout manager

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 8,095,865
App. No.
11/943,603
Granted
Jan 10, 2012
Kind
B2
Abstract

Various technologies and techniques are disclosed for managing layout updates to user interface elements. A dirty state of user interface elements is tracked in a tree with multiple nodes of user interface elements. The dirty state allows dirty subtrees of the nodes to be identified. A root node is identified for each of the dirty subtrees. Affected portions of the tree are updated, starting with the root node that was identified for each of the dirty subtrees. As part of the update process, changes to ancestor nodes are detected and used to make a layout process more efficient. For example, any layout processes that are currently being performed on any descendant nodes of a changed ancestor are abandoned, and the layout process is resumed at the changed ancestor. After updating affected portions of the tree, the updated user interface elements are then rendered on an output device.

Claims (25)

1. A computer storage medium having computer-executable instructions for causing a computer to perform steps, the computer storage medium not consisting of a propagating signal, the steps comprising:

tracking a dirty state of user interface elements in a tree of user interface elements, the tree containing a plurality of nodes, and the dirty state being operable to allow one or more dirty subtrees of the nodes to be identified;

identifying a root node for each of the dirty subtrees, the root node is a node that does not have an immediate ancestor that is also dirty, wherein the identifying of the root node for each of the dirty subtrees is facilitated by analyzing the dirty state and additional state associated with the nodes in the tree, wherein the additional state includes an indicator that specifies whether or not a selected one of the nodes has a dirty descendant node, wherein the additional state further includes an indicator that specifies whether or not a selected one of the nodes has a dirty ancestor node; and

updating affected portions of the tree starting with the root node that was identified for each of the dirty subtrees, wherein the updating step starts with the root node that was identified for each of the dirty subtrees so that updates are not performed on child nodes in the dirty subtrees that are then later overwritten due to updates made in parent nodes.

2. The computer storage medium of claim 1 , wherein the additional state includes an indicator that specifies whether or not a selected one of the nodes is currently being laid out.

3. The computer storage medium of claim 1 , wherein the dirty state includes an indicator that specifies whether or not a selected one of the nodes is dirty.

4. The computer storage medium of claim 1 , further having computer-executable instructions for causing a computer to perform steps comprising:

rendering the user interface elements on an output device after updating the affected portions of the tree of user interface elements.

5. A method comprising:

tracking a dirty state of user interface elements in a tree of user interface elements, the tree containing a plurality of nodes, and the dirty state being operable to allow one or more dirty subtrees of the nodes to be identified;

identifying a root node for each of the dirty subtrees, the root node is a node that does not have an immediate ancestor that is also dirty, wherein the identifying of the root node for each of the dirty subtrees is facilitated by analyzing the dirty state and additional state associated with the nodes in the tree, wherein the additional state includes an indicator that specifies whether or not a selected one of the nodes has a dirty descendant node, wherein the additional state further includes an indicator that specifies whether or not a selected one of the nodes has a dirty ancestor node;

abandoning a layout process that is currently being performed on child nodes, if any, in the dirty substrees; and

updating affected portions of the tree starting with the root node that was identified for each of the dirty subtrees, wherein the updating step starts with the root node that was identified for each of the dirty subtrees so that updates are not performed on child nodes in the dirty subtrees that are then later overwritten due to updates made in parent nodes.

6. The method of claim 5 , wherein the additional state includes an indicator that specifies whether or not a selected one of the nodes is currently being laid out.

7. The method of claim 5 , wherein the dirty state includes an indicator that specifies whether or not a selected one of the nodes is dirty.

8. The method of claim 5 , further comprising:

rendering the user interface elements on an output device after updating the affected portions of the tree of user interface elements.

9. A method, comprising:

tracking a dirty state of user interface elements in a tree of user interface elements, the tree containing a plurality of nodes, and the dirty state being operable to allow one or more dirty subtrees of the nodes to be identified;

identifying a root node for each of the dirty subtrees, the root node is a node that does not have an immediate ancestor that is also dirty, wherein the identifying of the root node for each of the dirty subtrees is facilitated by analyzing the dirty state and additional state associated with the nodes in the tree, wherein the additional state includes an indicator that specifies whether or not a selected one of the nodes has a dirty descendant node, wherein the additional state further includes an indicator that specifies whether or not a selected one of the nodes has a dirty ancestor node; and

updating affected portions of the tree starting with the root node that was identified for each of the dirty subtrees, wherein the updating step starts with the root node that was identified for each of the dirty subtrees so that updates are not performed on child nodes in the dirty subtrees that are then later overwritten due to updates made in parent nodes.

10. The method of claim 9 , wherein the additional state includes an indicator that specifies whether or not a selected one of the nodes is currently being laid out.

11. The method of claim 9 , wherein the dirty state includes an indicator that specifies whether or not a selected one of the nodes is dirty.

12. The method of claim 9 , further having computer-executable instructions for causing a computer to perform steps comprising:

rendering the user interface elements on an output device after updating the affected portions of the tree of user interface elements.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2007
From: PARIKH, SUJAL S.; RELYEA, DAVID P.
To: MICROSOFT CORPORATION
Reel/Frame 020219/0448 →
Continuity (1)
Related Publication 20090132578A1 · May 21, 2009