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.