IP Library Granted Patent US 8,875,047
Granted Patent B2
US 8,875,047 · App. 12/873,261 · Granted Oct 28, 2014

Smart docking for windowing systems

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,875,047
App. No.
12/873,261
Granted
Oct 28, 2014
Kind
B2
Abstract

A graphical user interface system is provided. The system includes a display and a processor, coupled to the display, configured to display a window, in an initial position. Upon receiving a window docking input by a user indicating a request to dock the window at a predefined docking point, the processor is configured to dock the window at the predefined docking point. The docking of the window at the predefined docking point includes hiding a portion of the window. Upon receiving a window docking input by a user indicating a request to simultaneously dock each of a plurality of windows at a predefined docking point, the processor is configured to dock each of the plurality of windows at a corresponding position on the predefined docking point, including hiding a portion of each of the plurality of windows. Methods and computer-readable mediums are also provided.

Claims (79)

1. A graphical user interface system comprising:

a display; and

a processor, coupled to the display, configured to display a window in an initial position;

wherein, upon receiving at a start point from a user a window docking input comprising a dragging of the window for a portion of a distance to a predefined docking point comprising an edge of the display, the processor is configured to dock the window at the predefined docking point upon the window being dragged the portion of the distance to the predefined docking point,

wherein the portion of the distance from the start point to the predefined docking point is less than an entire distance from the start point to the predefined docking point.

2. The system of claim 1 , wherein the window is further configured to move towards the edge of the display upon receiving the window docking input.

3. The system of claim 2 , wherein the window is configured to rotate while it moves towards the edge of the display.

4. The system of claim 1 , wherein the window comprises:

a frame portion including a title portion; and

a content portion.

5. The system of claim 4 , wherein the window docking input comprises receiving an input, from the user, within at least one of the frame portion or the content portion of the window.

6. The system of claim 4 , wherein if an end point of the vector is determined to dock the window at the predefined docking point such that a portion of the title portion will not be displayed, the window is moved at the predefined docking point and docked at the predefined docking point such that the portion of the title portion is displayed on the display.

7. The system of claim 4 , wherein the displayed portion of the docked window comprises the title portion of the window.

8. The system of claim 1 , wherein the window is dragged along a vector towards the predefined docking point, and wherein the window is docked at the predefined docking point in a position corresponding to where the vector intersects with the predefined docking point.

9. The system of claim 1 , wherein the window docking input comprises a dragging of the window for at least a predetermined velocity towards the edge of the display.

10. The system of claim 9 , wherein the predetermined velocity is determined to place the window beyond the displayable portion of the edge of the display.

11. The system of claim 1 , wherein at least one other docked window at the predefined docking point is configured to move away from the window after it is docked at the predefined docking point.

12. The system of claim 1 , wherein the window docking input comprises a haptic input.

13. The system of claim 1 , wherein, upon receiving a window undocking input by a user indicating a request to undock the window from the predefined docking point, the window is configured to return to the initial position.

14. The system of claim 1 , wherein, upon receiving a window view input by a user indicating a request to view the docked window, a portion of the window is displayed from the edge of the display.

15. The system of claim 14 , wherein the displaying the portion of the window comprises rotating the portion of the window in the direction of the initial position.

16. The system of claim 1 , wherein the docking of the window at the predefined docking point comprises hiding a portion of the window beyond the displayable portion of the edge of the display.

17. The system of claim 1 , wherein the display comprises a mobile device touchscreen display, and wherein the window docking input comprises a haptic input to the mobile device touchscreen display.

18. A method for docking a window comprising:

displaying, on a display, a window in an initial position; and

docking the window at the predefined docking point upon the window being dragged a portion of a distance to a predefined docking point in response to receiving, by a processor, at a start point a window docking input from a user comprising the dragging of the window for the portion of the distance to the predefined docking point comprising an edge of the display,

wherein the portion of the distance from the start point to the predefined docking point is less than an entire distance from the start point to the predefined docking point.

19. The method of claim 18 , further comprising moving the window towards the edge of the display in response to receiving the window docking input.

20. The method of claim 19 , wherein the window is configured to rotate while it moves towards the edge of the display.

21. The method of claim 18 , wherein the window comprises:

a frame portion including a title portion; and

a content portion.

22. The method of claim 21 , wherein the window docking input comprises receiving an input, from the user, within at least one of the frame portion or the content portion of the window.

23. The method of claim 21 , wherein if an end point of the vector is determined to dock the window at the predefined docking point such that a portion of the title portion will not be displayed, the window is moved at the predefined docking point and docked at the predefined docking point such that the portion of the title portion is displayed on the display.

24. The method of claim 21 , wherein the displayed portion of the docked window comprises the title portion of the window.

25. The method of claim 18 , wherein the window is dragged along a vector towards the predefined docking point, and wherein the window is docked at the predefined docking point in a position corresponding to where the vector intersects with the predefined docking point.

26. The method of claim 18 , wherein the window docking input comprises a dragging of the window for at least a predetermined velocity towards the edge of the display.

27. The method of claim 26 , wherein the predetermined velocity is determined to place the window beyond the displayable portion of the edge of the display.

28. The method of claim 18 , further comprising moving at least one other docked window at the predefined docking point away from the window after it is docked at the predefined docking point.

29. The method of claim 18 , wherein the window docking input comprises a haptic input.

30. The method of claim 18 , further comprising returning the window to the initial position upon receiving a window undocking input by a user indicating a request to undock the window from the predefined docking point.

31. The method of claim 18 , further comprising displaying a portion of the window from the edge of the display upon receiving a window view input by a user indicating a request to view the docked window.

32. The method of claim 31 , wherein the displaying the portion of the window comprises rotating the portion of the window in the direction of the initial position.

33. The method of claim 18 , wherein the docking of the window at the predefined docking point comprises hiding a portion of the window beyond the displayable portion of the edge of the display.

34. A non-transitory computer-readable medium comprising computer-readable instructions for causing a processor to execute a method comprising:

displaying, on a display, a window in an initial position;

receiving, by the processor, at a start point a window docking input from a user comprising a dragging of the window for a portion of a distance to a predefined docking point comprising an edge of the display; and

docking the window at the predefined docking point upon the window being dragged the portion of the distance to the predefined docking point,

wherein the portion of the distance from the start point to the predefined docking point is less than an entire distance from the start point to the predefined docking point.

35. A graphical user interface system comprising:

a display; and

a processor, coupled to the display, configured to display a plurality of windows, each comprising an initial position,

wherein, upon receiving from a user an all-window docking input comprising contacting the display at a plurality of points on the display and dragging the plurality of points on the display for a portion of a distance to at least one predefined docking point comprising at least one edge of the display, the processor is configured to dock each of the plurality of windows at a corresponding position at the predefined docking point corresponding to each of the plurality of windows upon the plurality of points on the display being dragged the portion of the distance to the at least one predefined docking point,

wherein the portion of the distance from the plurality of points to the at least one predefined docking point is less than an entire distance from the plurality of points to the at least one predefined docking point.

36. The system of claim 35 , wherein the all-window docking input further comprises dragging the plurality of points on the display in a predetermined direction towards the predefined docking point.

37. The system of claim 35 , wherein, upon receiving a window undocking input by a user indicating a request to undock each of the plurality of windows from its corresponding position on the predefined docking point, each of the plurality of windows is configured to return to its initial position.

38. The system of claim 37 , wherein the window undocking input comprises a haptic input.

39. The system of claim 38 , wherein the haptic input comprises contacting the display at a plurality of points on the display.

40. The system of claim 39 , wherein the window undocking input further comprises dragging the plurality of points on the display for at least a predetermined distance towards the predefined docking point.

41. The system of claim 39 , wherein the window undocking input further comprises dragging the plurality of points on the display in a predetermined direction towards the predefined docking point.

42. The system of claim 35 , wherein the docking of each of the plurality of windows at its corresponding position on the predefined docking point corresponding to each of the plurality of windows comprises hiding a portion of each of the plurality of windows beyond the displayable portion of the at least one edge of the display.

43. A method for docking windows, comprising:

displaying a plurality of windows, each comprising an initial position;

receiving, by a processor, an all-window docking input from a user comprising contacting a display at a plurality of points on the display and dragging the plurality of points on the display for a portion of a distance to at least one predefined docking point; and

docking each of the plurality of windows at a corresponding position at the predefined docking point corresponding to each of the plurality of windows upon the plurality of points on the display being dragged the portion of the distance to the at least one predefined docking point,

wherein the portion of the distance from the plurality of points to the at least one predefined docking point is less than an entire distance from the plurality of points to the at least one predefined docking point.

44. The method of claim 43 , wherein the all-window docking input further comprises dragging the plurality of points on the display in a predetermined direction towards the predefined docking point.

45. The method of claim 44 , wherein the all-window docking input further comprises dragging the plurality of points on the display at a predetermined velocity towards the predefined docking point.

46. The method of claim 43 , further comprising returning each of the plurality of windows to its initial position upon receiving a window undocking input by a user indicating a request to undock each of the plurality of windows from its corresponding position on the predefined docking point.

47. The method of claim 46 , wherein the window undocking input comprises a haptic input.

48. The method of claim 47 , wherein the haptic input comprises contacting the display at a plurality of points on the display.

49. The method of claim 46 , wherein the window undocking input further comprises dragging the plurality of points on the display for at least a predetermined distance towards the predefined docking point.

50. The method of claim 46 , wherein the window undocking input further comprises dragging the plurality of points on the display in a predetermined direction towards the predefined docking point.

51. The method of claim 43 , wherein the docking of each of the plurality of windows on its corresponding position on the predefined docking point comprises hiding a portion of each of the plurality of windows beyond the displayable portion of the at least one edge of the display.

52. A non-transitory computer-readable medium comprising computer-readable instructions for causing a processor to execute a method comprising:

displaying a plurality of windows, each comprising an initial position;

receiving, by a processor, an all-window docking input from a user comprising contacting a display at a plurality of points on the display and dragging the plurality of points on the display for a portion of a distance to at least one predefined docking point; and

docking each of the plurality of windows at a corresponding position at the predefined docking point corresponding to each of the plurality of windows upon the plurality of points on the display being dragged the portion of the distance to the at least one predefined docking point,

wherein the portion of the distance from the plurality of points to the at least one predefined docking point is less than an entire distance from the plurality of points to the at least one predefined docking point.

Assignments (14)
RELEASE OF SECURITY INTEREST Recorded Mar 2, 2026
From: ALTER DOMUS (US) LLC
To: BLACKBOARD LLC
Reel/Frame 073942/0611 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2026
From: ANKURA TRUST COMPANY, LLC
To: BLACKBOARD LLC (F/K/A BLACKBOARD INC.); BLACKBOARD CONNECT INC.; TEACHERWEB, INC.; PARLANT TECHNOLOGIES, INC.
Reel/Frame 073932/0199 →
SECURITY INTEREST Recorded Oct 1, 2025
From: BLACKBOARD LLC
To: ALTER DOMUS (US) LLC
Reel/Frame 072440/0589 →
ENTITY CONVERSION Recorded Jul 13, 2025
From: BLACKBOARD INC.
To: BLACKBOARD LLC
Reel/Frame 071930/0172 →
SUCCESSION OF AGENCY (REEL 058081 / FRAME 0073) Recorded Jul 11, 2025
From: UBS AG, STAMFORD BRANCH
To: ANKURA TRUST COMPANY, LLC, AS SUCCESSOR AGENT
Reel/Frame 071890/0005 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Apr 19, 2024
From: BLACKBOARD LLC (F/K/A BLACKBOARD INC.)
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 067172/0148 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Oct 27, 2021
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BLACKBOARD INC.; BLACKBOARD CONNECT INC.; EDLINE LLC; TEACHERWEB, INC.
Reel/Frame 057941/0752 →
FIRST LIEN SECURITY AGREEMENT Recorded Oct 26, 2021
From: BLACKBOARD INC.; BLACKBOARD CONNECT INC.; TEACHERWEB, INC.; PARLANT TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 058081/0025 →
SECOND LIEN SECURITY AGREEMENT Recorded Oct 26, 2021
From: BLACKBOARD INC.; BLACKBOARD CONNECT INC.; TEACHERWEB, INC.; PARLANT TECHNOLOGIES, INC.
To: UBS AG, STAMFORD BRANCH
Reel/Frame 058081/0073 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Oct 26, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: BLACKBOARD INC.; BLACKBOARD CONNECT INC.; BLACKBOARD COLLABORATE INC.; PARLANT TECHNOLOGY, INC.; TEACHERWEB, INC.
Reel/Frame 058298/0577 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 7, 2019
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: BLACKBOARD INC.; BLACKBOARD COLLABORATE, INC.; BLACKBOARD CONNECT INC.; PARLANT TECHNOLOGY, INC.; TEACHERWEB, INC.
Reel/Frame 050953/0361 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 7, 2019
From: BLACKBOARD, INC.; BLACKBOARD CONNECT INC.; BLACKBOARD COLLABORATE INC.; PARLANT TECHNOLOGY, INC.; TEACHERWEB, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 050965/0354 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 20, 2016
From: BLACKBOARD INC.; BLACKBOARD COLLABORATE INC.; BLACKBOARD CONNECT INC.; PARLANT TECHNOLOGY, INC.; TEACHERWEB, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 040435/0932 →
RELEASE OF LIEN ON PATENTS Recorded Nov 19, 2013
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BLACKBOARD INC.; EDLINE LLC; BLACKBOARD CONNECT INC.; TEACHERWEB, INC
Reel/Frame 031689/0871 →