1. A method of displaying a plurality of desktops and/or applications, each having at least one window, on a multi-screen device, comprising: receiving, by a processor, a first input that represents an instruction to reveal one of a desktop or application on a first display of the multi-screen device; selecting, by a processor, a first desktop or application to display on the first display; receiving a second input that represents an instruction to reveal one of a desktop or application on a second display of the multi-screen device; selecting, by a processor, a second desktop or application to display on the second display; displaying, by a processor, the selected first and second desktops or applications on the first and second displays; receiving, by a processor, a third input that represents an instruction to launch one of a desktop or application; selecting, by a processor, a third desktop or application to add to a window stack comprising the first, second, and third desktops or applications; initially, by a processor, positioning the third desktop or application in the window stack in a non-displayed position; selectively, by a processor, moving the third desktop or application to another position by re-launching the third desktop or application from the first or second displays, resulting in the third desktop or application being re-displayed on the display from which it was re-launched, thereby changing an order of the desktops and applications running in the window stack.