IP Library Granted Patent US 9,223,761
Granted Patent B2
US 9,223,761 · App. 13/560,325 · Granted Dec 29, 2015

Real time visual feedback during move, resize and/or rotate actions in an electronic document

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 9,223,761
App. No.
13/560,325
Granted
Dec 29, 2015
Kind
B2
Abstract

Real time feedback during move, resize or rotate actions in an electronic document is provided. During live drag actions, the layout shown during the action may be the layout produced when the object is dropped. Detection of slow performance of an application and aborting a redraw action as needed may be provided. A visual indication may be provided for helping users to see that an action is in progress, and thereby removing a perception that the application is failing to respond properly. Determining if a figure will not land in a current cursor/touch point position in a move action and a visual indication to help the user see where and why the figure may jump to a new location may also be provided. In addition, determining an attachment point for an object on a page comprising a table may also be provided.

Claims (77)

1. A method for providing visual feedback of a resize or rotate action during slow application performance, the method comprising:

receiving an input associated with resizing or rotating an object on a page;

determining if a performance time of the application exceeds a predetermined threshold;

updating a size or angle of the object and a layout of the page in real time; and

if the performance time of the application exceeds the predetermined threshold:

aborting resizing or rotating the object and aborting updating the layout of the page; and

displaying a bounding box as an overlay on the object.

2. The method of claim 1 , wherein determining if the performance time of the application exceeds the predetermined threshold comprises:

measuring a distance between a current cursor/touch point position and a position of the object;

generating a mock view of the page including drawing a wrapping polygon around the object;

calculating the wrapping polygon;

measuring the performance time of calculating the wrapping polygon; and

determining if either the distance between the current cursor/touch point position and a position of the object exceeds a predetermined threshold or the performance time of calculating the wrapping polygon exceeds a predetermined threshold.

3. The method of claim 2 , wherein measuring the performance time of calculating the wrapping polygon comprises measuring a frame rate to calculate the wrapping polygon.

4. The method of claim 1 , further comprising:

updating a size or angle of the bounding box in real time as the object is being resized or rotated;

determining whether the resize or rotate action can be performed without exceeding the predetermined threshold;

if the resize or rotate action can be performed without exceeding the predetermined threshold, calculating the wrapping polygon;

removing the bounding box; and

resizing or rotating the object and updating the layout of the page.

5. The method of claim 4 , wherein determining whether the resize or rotate action can be performed without exceeding the predetermined threshold includes determining if the performance time of the application exceeds the predetermined threshold.

6. The method of claim 5 , wherein determining if the performance time of the application exceeds the predetermined threshold comprises one of:

measuring a distance between a current cursor/touch point position and a position of the object; or

measuring a speed of input device movement; and

determining if either the distance between the current cursor/touch point position and a position of the object exceeds a predetermined threshold or the speed of input device movement exceeds a predetermined threshold.

7. The method of claim 1 , wherein updating the size or angle of the bounding box in real time as the object is being resized or rotated does not change the layout of the page.

8. The method of claim 1 , further comprising receiving an indication of a drop action and displaying the updated size or angle of the object and the updated layout of the page.

9. A computing device for providing visual feedback of a resize or rotate action during slow application performance, comprising:

a processing unit; and

a memory including instructions, when executed by the processing unit cause the computing device to:

receive an input associated with resizing or rotating an object on a page;

determine if a performance time of the application exceeds a predetermined threshold;

update a size or angle of the object and a layout of the page in real time; and

if the performance time of the application exceeds the predetermined threshold:

abort resizing or rotating the object and aborting updating the layout of the page; and

display a bounding box as an overlay on the object.

10. The computing device of claim 9 , wherein the memory including instructions, when executed by the processing unit further cause the computing device to:

measure a distance between a current cursor/touch point position and a position of the object;

generate a mock view of the page including drawing a wrapping polygon around the object;

calculate the wrapping polygon;

measure the performance time of calculating the wrapping polygon; and

determine if either the distance between the current cursor/touch point position and a position of the object exceeds a predetermined threshold or the performance time of calculating the wrapping polygon exceeds a predetermined threshold.

11. The computing device of claim 10 , wherein to measure the performance time of calculating the wrapping polygon comprises to measure a frame rate to calculate the wrapping polygon.

12. The method of claim 9 , further comprising:

update a size or angle of the bounding box in real time as the object is being resized or rotated;

determine whether the resize or rotate action can be performed without exceeding the predetermined threshold;

if the resize or rotate action can be performed without exceeding the predetermined threshold, calculate the wrapping polygon;

remove the bounding box; and

resize or rotate the object and update the layout of the page.

13. The method of claim 12 , wherein to determine whether the resize or rotate action can be performed without exceeding the predetermined threshold includes to determine if the performance time of the application exceeds the predetermined threshold.

14. The method of claim 13 , wherein to determine if the performance time of the application exceeds the predetermined threshold comprises one of:

measure a distance between a current cursor/touch point position and a position of the object; or

measure a speed of input device movement; and

determine if either the distance between the current cursor/touch point position and a position of the object exceeds a predetermined threshold or the speed of input device movement exceeds a predetermined threshold.

15. The method of claim 9 , wherein to update the size or angle of the bounding box in real time as the object is being resized or rotated does not change the layout of the page.

16. The method of claim 9 , wherein the memory including instructions, when executed by the processing unit further cause the computing device to:

to receive an indication of a drop action and displaying the updated size or angle of the object and the updated layout of the page.

17. A method for providing visual feedback of a resize or rotate action during slow application performance, the method comprising:

receiving an input associated with resizing or rotating an object on a page;

determining if a performance time of the application exceeds a predetermined threshold;

updating a size or angle of the object and a layout of the page in real time; and

if the performance time of the application exceeds the predetermined threshold:

aborting resizing or rotating the object and aborting updating the layout of the page; and

displaying a bounding box as an overlay on the object.

18. The method of claim 17 , wherein determining if the performance time of the application exceeds the predetermined threshold comprises:

measuring a distance between a current cursor/touch point position and a position of the object;

generating a mock view of the page including drawing a wrapping polygon around the object;

calculating the wrapping polygon;

measuring the performance time of calculating the wrapping polygon; and

determining if either the distance between the current cursor/touch point position and a position of the object exceeds a predetermined threshold or the performance time of calculating the wrapping polygon exceeds a predetermined threshold.

19. The method of claim 18 , wherein measuring the performance time of calculating the wrapping polygon comprises measuring a frame rate to calculate the wrapping polygon.

20. The method of claim 17 , further comprising:

updating a size or angle of the bounding box in real time as the object is being resized or rotated;

determining whether the resize or rotate action can be performed without exceeding the predetermined threshold;

if the resize or rotate action can be performed without exceeding the predetermined threshold, calculating the wrapping polygon;

removing the bounding box; and

resizing or rotating the object and updating the layout of the page.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2012
From: SUKHANOV, ANTON; ESTRADA, THERESA ANN; AGARWAL, NUPUR; RUIZ, MANUEL DAVID
To: MICROSOFT CORPORATION
Reel/Frame 028659/0405 →