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, at least a first input that represents an instruction to reveal at least one of a desktop or application on at least one of first and second displays of a multi-screen device; selecting, by a processor, at least a first desktop or application to display on the at least one of the first and second displays; displaying the at least one of the first desktop or application on the at least one of the first and second displays; receiving, by a processor, a second input that represents an instruction to launch one of a desktop or application; selecting, by a processor, a second desktop or application to add to a window stack comprising at least the first and second desktops or applications; initially, by a processor, positioning the second desktop or application in the window stack in a non-displayed position; and selectively, by a processor, moving the second desktop or application to another position in the window stack by re-launching the second desktop or application from at least one of the first and second displays, resulting in the second desktop or application being re-displayed on one of the first and second displays from which the second desktop or application was re-launched, thereby changing an order of the desktops and applications running in the window stack.