Window stack modification in response to orientation change
First Claim
Patent Images
1. A method of modifying a window stack in response to an orientation change of a multi-display device, the method comprising:
- placing the multi-display device in a portrait orientation, wherein a first display and a second display of the multi-display device are oriented with a shorter display dimension horizontal, and wherein an upper portion of the first display and an upper portion of the second display form a horizontal line;
displaying a first window of a first open application on the first display of the multi-display device and displaying a second window of a second open application on the second display of the multi-display device;
determining that the multi-display device has rotated from the portrait orientation to a landscape orientation, wherein the first and second displays are oriented with the shorter display dimension vertical, wherein the upper portion of the first display and the upper portion of the second display are parallel, and wherein the rotation of the multi-display device is determined, at least in part, based on data received from an accelerometer;
determining a relative size and orientation of the first and second windows in a window stack stored in a memory of the multi-display device based on the rotation of the multi-display device to the landscape orientation,wherein the window stack comprises a logical arrangement that describes an order of all open windows and desktops,wherein each window and desktop is arranged by a unique stack position identifier from a top to a bottom of the window stack and an inactive window comprises a window that is not being displayed,wherein the stack position identifier of the first window and the stack position identifier of the second window are sequential, andwherein each of the one or more windows and desktops are configured to be displayed entirely within the displays of the multi-display device;
generating a logic structure for each of the one or more windows and desktops based on the window stack, wherein the logic structure comprises two or more of;
a window identifier adapted to identify each window and desktop in relation to the other windows and desktops;
dimensions that delineate a portion of one or more of the first display and the second display that each window and desktop occupies;
a stack position identifier adapted to identify a unique position in the window stack for each window and desktop, wherein the stack position identifier represents a location of each window and desktop within the window stack, and wherein the stack position identifier of each window and desktop can change based on user input; and
a display identifier adapted to identify one or more of the first and second displays of the multi-display device with which each window is associated;
after determining that the multi-display device has rotated to the landscape orientation with the first display above the second display, receiving a user input on the first window to control a movement of a third window of a third open application that is inactive;
responding to the user input on the first window with a command that, based on a direction of the user input;
moves the second window from the second display, wherein the second window is inactive and is not displayed;
moves the first window from the first display to the second display, wherein the first window is active;
moves the third window to the first display, wherein the third window is active and displayed; and
the first, second, and third applications are open; and
after determining that the multi-display device has rotated to the landscape orientation with the second display above the first display, receiving a user input on the second window to control a movement of a fourth window of a fourth open application that is inactive; and
responding to the user input on the second window with a command that moves the first and second windows, wherein, after the movement, the first window is inactive and is not displayed, the second window is active and is displayed on the first display, the fourth window is active and is displayed on the second display, and the first, second, third, and fourth applications are open.
2 Assignments
0 Petitions
Accused Products
Abstract
A multi-screen user device and methods for controlling data displayed thereby are disclosed. Specifically, the control of data displayed by at least one of the multiple screens of the multi-screen user device is conditioned upon the relative orientation of the multiple screens, whether the device orientation is changed from a first state to a second state, and user input received.
-
Citations
20 Claims
-
1. A method of modifying a window stack in response to an orientation change of a multi-display device, the method comprising:
-
placing the multi-display device in a portrait orientation, wherein a first display and a second display of the multi-display device are oriented with a shorter display dimension horizontal, and wherein an upper portion of the first display and an upper portion of the second display form a horizontal line; displaying a first window of a first open application on the first display of the multi-display device and displaying a second window of a second open application on the second display of the multi-display device; determining that the multi-display device has rotated from the portrait orientation to a landscape orientation, wherein the first and second displays are oriented with the shorter display dimension vertical, wherein the upper portion of the first display and the upper portion of the second display are parallel, and wherein the rotation of the multi-display device is determined, at least in part, based on data received from an accelerometer; determining a relative size and orientation of the first and second windows in a window stack stored in a memory of the multi-display device based on the rotation of the multi-display device to the landscape orientation, wherein the window stack comprises a logical arrangement that describes an order of all open windows and desktops, wherein each window and desktop is arranged by a unique stack position identifier from a top to a bottom of the window stack and an inactive window comprises a window that is not being displayed, wherein the stack position identifier of the first window and the stack position identifier of the second window are sequential, and wherein each of the one or more windows and desktops are configured to be displayed entirely within the displays of the multi-display device; generating a logic structure for each of the one or more windows and desktops based on the window stack, wherein the logic structure comprises two or more of; a window identifier adapted to identify each window and desktop in relation to the other windows and desktops; dimensions that delineate a portion of one or more of the first display and the second display that each window and desktop occupies; a stack position identifier adapted to identify a unique position in the window stack for each window and desktop, wherein the stack position identifier represents a location of each window and desktop within the window stack, and wherein the stack position identifier of each window and desktop can change based on user input; and a display identifier adapted to identify one or more of the first and second displays of the multi-display device with which each window is associated; after determining that the multi-display device has rotated to the landscape orientation with the first display above the second display, receiving a user input on the first window to control a movement of a third window of a third open application that is inactive; responding to the user input on the first window with a command that, based on a direction of the user input; moves the second window from the second display, wherein the second window is inactive and is not displayed; moves the first window from the first display to the second display, wherein the first window is active; moves the third window to the first display, wherein the third window is active and displayed; and the first, second, and third applications are open; and after determining that the multi-display device has rotated to the landscape orientation with the second display above the first display, receiving a user input on the second window to control a movement of a fourth window of a fourth open application that is inactive; and responding to the user input on the second window with a command that moves the first and second windows, wherein, after the movement, the first window is inactive and is not displayed, the second window is active and is displayed on the first display, the fourth window is active and is displayed on the second display, and the first, second, third, and fourth applications are open. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable medium having stored thereon instructions that cause a multi-display computing system to execute a method, the instructions comprising:
-
instructions that determine that the multi-display computing system is in a portrait configuration, wherein a first display and a second display of the multi-display computing system are oriented with a shorter display dimension horizontal, and wherein an upper portion of the first display and an upper portion of the second display form a horizontal line; on the first display and display a second window of a second open application on the second display; instructions that determine that the multi-display computing system has rotated from the portrait orientation to a landscape orientation, wherein the first and second displays are oriented with the shorter display dimension vertical, wherein the upper portion of the first display and the upper portion of the second display are parallel, and wherein the rotation of the multi-display device is determined, at least in part, based on data received from an accelerometer; instructions that determine a position of the first and second windows in a window stack stored in a memory of the multi-display computing system based on the rotation of the multi-display computing system, wherein the window stack comprises a logical arrangement that describes an order of all windows and desktops executing on the multi-display computing system, wherein each window and desktop is arranged by a unique stack position identifier with respect to other windows and desktops, wherein the stack position identifier of each window and desktop represents a location of the window or desktop from a top to a bottom of the window stack, wherein the stack position identifier of each window and desktop can change based on user input, and wherein an inactive window or desktop is not displayed; instructions that generate a logic structure for each window and desktop based on the window stack, wherein the logic structure comprises one or more of; an identifier that identifies each window and desktop in relation to the other windows and desktops; dimensions that delineate a portion of one or more of the first display and the second display that each window or desktop occupies; the stack position identifier that identifies a position in the window stack for each window and desktop; and a display identifier that identifies one or more of the first and second displays of the multi-display computing system with which each window and desktop is associated; instructions that determine whether the first display is above the second display in the landscape orientation; when the first display is determined to be below the second display, instructions that receive a user input on the second window displayed by the second display to control a movement of a third window of a third open application that is inactive, wherein the third window is a next window in the window stack; instructions that respond to the user input on the second window with a command that moves the first and second windows based, at least in part, on a direction of the user input, and wherein after the movement; the second window is inactive and is not displayed, the first window is active and is displayed on the second display, the third window is active and is displayed on the first display, and the first, second, and third applications are open; and when the first display is determined to be above the second display, instructions that receive a user input on the first window to control a movement of a fourth window of a fourth open application that is inactive; and instructions that respond to the user input on the first window with a command that moves the first and second windows, wherein, after the movement, the first window is inactive and is not displayed, the second window is active and is displayed on the first display, the fourth window is active and is displayed on the second display, and the first, second, third, and fourth applications are open. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A multi-display user device, comprising:
-
a first display controlled by a first display controller; a second display controlled by a second display controller; a memory; and a processor in communication with the memory, the first and second display controllers, and each of the first and second displays, the processor programmed to; create a window stack, wherein the window stack is a logical arrangement stored in the memory that describes an order from a top to a bottom of all open windows and desktops associated with both the first and second displays; determine a stack position identifier of a first window of a first open application, wherein the first window is active and displayed on the first display; determine the stack position identifier of a second window of a second open application, wherein the second window is active and displayed on the second display; determine the stack position identifier of a third window of a third open application, wherein the third window is inactive and is not displayed; determine the stack position identifier of a fourth window of a fourth open application, wherein the fourth window is inactive and is not displayed; receive one of a first rotation and a second rotation of the multi-display user device, wherein the first rotation and the second rotation are in opposite directions; after receiving the first rotation, determine that the multi-display user device has rotated from a portrait orientation to a landscape orientation with the first display positioned above the second display, wherein, in the portrait orientation, the first display and the second display are oriented with a shorter display dimension horizontal and an upper portion of the first display and an upper portion of the second display form a horizontal line, and wherein, in the landscape orientation, the first and second displays are oriented with the shorter display dimension vertical and the upper portion of the first display and the upper portion of the second display are parallel; receive one of a first user input and a second user input on the first window, wherein the second user input has a direction that is opposite to a direction of the first user input, in response to receiving the first user input, determine a new order of windows and desktops in the window stack, wherein; the first window is moved from the first display and becomes inactive, the second window is moved from the second display to the first display, and the fourth window is displayed on the second display and becomes active; and in response to receiving the second user input, determine a new order of windows and desktops in the window stack, wherein; the second window is moved from the second display and becomes inactive, the first window is moved from the first display to the second display, and the third window is displayed on the first display and becomes active. - View Dependent Claims (18, 19, 20)
-
Specification