# Patent

## Title
Thumbnail-image selection of applications

## Abstract

This document describes techniques and apparatuses enabling thumbnail-image selection of applications. In some embodiments, these techniques and apparatuses enable a user interface having selectable thumbnail images for applications not currently exposed on a display. The techniques and apparatuses may enable selection of this user interface through a simple gesture that is both easy-to-use and remember. Further, selection of applications not currently exposed on the display may be selected through thumbnail images representing each application's application interface as it will appear on selection.

## Background
BACKGROUND
Conventional techniques for selecting an application that does not have an interface currently presented on a display are often confusing, take up valuable display space, or cannot be universally applied across different devices. Some conventional techniques, for example, enable selection of an application through onscreen controls in a persistent task bar. These onscreen controls, however, take up valuable display real estate.
Some other conventional techniques enable selection of an application through hardware, such as hot keys and buttons. At best these techniques require users to remember what key, key combination, or hardware button to select. Even in such a case, users often accidentally select incorrect keys or buttons. Further, in many cases hardware-selection techniques cannot be universally applied, as hardware on computing devices can vary by device model, generation, vendor, or manufacturer. In such cases, either the techniques will not work or work differently across different computing devices. This exacerbates the problem of users needing to remember the correct hardware configuration, as many users have multiple devices, and so may need to remember different hardware selections for different devices. Further still, for many computing devices hardware selection forces users to engage a computing device outside the user's normal flow of interaction, such as when a touch-screen device requires a user to change his or her mental and physical orientation from display-based interactions to hardware-based interactions.
SUMMARY
This document describes techniques and apparatuses enabling thumbnail-image selection of applications. In some embodiments, these techniques and apparatuses enable a user interface having selectable thumbnail images for applications not currently exposed on a display. The techniques and apparatuses may enable selection of this user interface through a simple gesture that is both easy-to-use and remember. Further, selection of applications not currently exposed on the display may be selected through thumbnail images representing each application's application interface as it will appear on selection.
This summary is provided to introduce simplified concepts for thumbnail-image selection of applications that are further described below in the Detailed Description. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter. Techniques and/or apparatuses enabling thumbnail-image selection of applications are also referred to herein separately or in conjunction as the “techniques” as permitted by the context.



BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments enabling thumbnail-image selection of applications, along with other embodiments enabling other techniques, are described with reference to the following drawings. The same numbers are used throughout the drawings to reference like features and components:
FIG. 1 illustrates an example system in which techniques for thumbnail-image selection of applications can be implemented.
FIG. 2 illustrates an example method for enabling edge gestures that can be used to select to switch back to a previously-interacted-with application, the edge gestures being approximately perpendicular to an edge in which the gesture begins.
FIG. 3 illustrates an example tablet computing device having a touch-sensitive display presenting an immersive interface.
FIG. 4 illustrates the example immersive interface of FIG. 3 along with example edges.
FIG. 5 illustrates the example immersive interface of FIGS. 3 and 4 along with angular variance lines from a perpendicular line and a line from a start point to a later point of a gesture.
FIG. 6 illustrates the edges of the immersive interface shown in FIG. 4 along with two regions in the right edge.
FIG. 7 illustrates a tile-based application-selection interface presented by a system-interface module in response to an edge gesture made over the immersive interface and webpage of FIG. 3.
FIG. 8 illustrates an example method for enabling edge gestures including determining an interface to present based on some factor of the gesture.
FIG. 9 illustrates an example method enabling expansion of, or ceasing presentation of, an application interface presented in response to an edge gesture or presentation of another application interface.
FIG. 10 illustrates a laptop computer having a touch-sensitive display having a windows-based email interface and two immersive interfaces.
FIG. 11 illustrates the interfaces of FIG. 10 along with two gestures having a start point, later points, and one or more successive points.
FIG. 12 illustrates the windows-based email interface of FIGS. 10 and 11 along with an email handling interface presented in response to an edge gesture.
FIG. 13 illustrates the interfaces of FIG. 12 along with an additional-email-options interface presented in response to a gesture determined to have a successive point a preset distance from the edge.
FIG. 14 illustrates a method for switching back to a previously-interacted-with application using a queue.
FIG. 15 illustrates an example interaction order in which a user interacts with various applications.
FIG. 16 illustrates the immersive interface of FIG. 3 along with a thumbnail image of an application interface of a prior application.
FIG. 17 illustrates a method for switching back to a previously-interacted-with application, which may or may not use a queue.
FIG. 18 illustrates the immersive interface of FIGS. 3 and 16, two progressive presentations, and two gesture portions.
FIG. 19 illustrates a method enabling thumbnail-image selection of applications.
FIG. 20 illustrates a thumbnail-image-based application-selection user interface over the immersive interface and webpage of FIG. 3.
FIG. 21 illustrates a method enabling thumbnail-image selection of applications, the thumbnail images presented and selected through one or more mouse-based gestures.
FIG. 22 illustrates an example menu enabling selection to present an application interface at multiple sizes and/or locations.
FIG. 23 illustrates a method enabling thumbnail-image selection of applications, the thumbnail images presented responsive to an edge gesture.
FIG. 24 illustrates an example device in which techniques for thumbnail-image selection of applications can be implemented.



DETAILED DESCRIPTION
Overview
This document describes techniques and apparatuses enabling thumbnail-image selection of applications. These techniques, in some embodiments, enable a user to quickly and easily select applications.
Consider a case where a user visits a shopping website and finds a toy horse for his niece's birthday, then interacts with a local word-processing document, then visits the same shopping website and finds coloring books for his niece's birthday, then visits a social-networking website, and then visits a web-enabled radio website. Assume that the user, when listening to songs on the radio website, decides to revisit the shopping website to buy the toy horse.
The user may, for example, simply select, though a gesture starting at an edge of his display and “swiping” away from that edge into the display, to quickly see at a large or thumbnail size, the social-networking website. The user may swipe again to revisit the shopping website having the coloring books and so forth until the page having the toy horse appears. The techniques, however, may also or instead permit the user to see multiple thumbnail images at once, the images representing how the application's interface will appear on selection. Thus, with a simple gesture selecting to see these thumbnail images, the techniques may present thumbnails showing a picture of the toy horse as it will be shown in the shopping website, the word-processing document that the user last opened (rather than an icon for word-processing application) in a thumbnail image, another thumbnail for the shopping website showing the coloring books, and a thumbnail image showing the social-networking website as it will be presented if selected. In so doing, the user may easily see which webpage has the toy horse and so quickly and easily select that webpage. On selection of the thumbnail having the toy horse, the techniques present the shopping website showing the toy horse rather than the coloring books.
This is but one example of many ways in which the techniques enabling thumbnail-image selection of applications, others of which are described below.
Example System
FIG. 1 illustrates an example system 100 in which techniques for thumbnail-image selection of applications can be embodied. System 100 includes a computing device 102, which is illustrated with six examples: a laptop computer 104, a tablet computer 106, a smart phone 108, a set-top box 110, a desktop computer 112, and a gaming device 114, though other computing devices and systems, such as servers and netbooks, may also be used.
Computing device 102 includes computer processor(s) 116 and computer-readable storage media 118 (media 118). Media 118 includes an operating system 120, windows-based mode module 122, immersive mode module 124, system-interface module 126, gesture handler 128, application manager 130, and one or more applications 132. Application manager 130 includes or has access to an application queue 134 and/or an application group 136. Application group 136 includes one or more of applications 132, each of which has an application interface 138. One or more thumbnail images 140 are maintained based on application interfaces 138 for those applications in application group 136.
Thumbnail images 140 provide some indication of how an application interface associated with the application will appear or recently appeared (if previously interacted with by the user). In some embodiments, thumbnails images 140 are a smaller or lower-resolution image of the respective application interface as the respective application interface will appear on selection of thumbnail image 140 or as the respective application interface last appeared. These smaller or lower-resolution images may include a portion of the application interface rather than all of the application interface, such as to remove advertisements or other portions of the application interface. The remaining portion may then be reduced in size or may be small enough without reduction. Note also that thumbnail image 140 may be identical, other than size, to the application interface.
Further still, thumbnail image 140 may include moving items, videos, animations, and so forth as they will be or were shown, though often in a small or lower-resolution. Thus, if the toy horse of the above example was shown trotting as an animation or in a video clip, thumbnail image 140 may show this trotting at a smaller size.
Computing device 102 also includes or has access to one or more displays 142 and input mechanisms 144. Four example displays are illustrated in FIG. 1. Input mechanisms 144 may include gesture-sensitive sensors and devices, such as touch-based sensors and movement-tracking sensors (e.g., camera-based), as well as mice (free-standing or integral with a keyboard), track pads, and microphones with accompanying voice recognition software, to name a few. Input mechanisms 144 may be separate or integral with displays 142; integral examples include gesture-sensitive displays with integrated touch-sensitive or motion-sensitive sensors.
Windows-based mode module 122 presents application interfaces 138 through windows having frames. These frames may provide controls through which to interact with application 132 and/or controls enabling a user to move and resize the window.
Immersive mode module 124 provides an environment by which a user may view and interact with one or more of applications 132 through application interfaces 138. In some embodiments, this environment presents content of, and enables interaction with, applications with little or no window frame and/or without a need for a user to manage a window frame's layout or primacy relative to other windows (e.g., which window is active or up front) or manually size or position application interfaces 138.
This environment can be, but is not required to be, hosted and/or surfaced without use of a windows-based desktop environment. Thus, in some cases immersive mode module 124 presents an immersive environment that is not a window (even one without a substantial frame) and precludes usage of desktop-like displays (e.g., a taskbar). Further still, in some embodiments this immersive environment is similar to an operating system in that it is not closeable or capable of being un-installed. While not required, in some cases this immersive environment enables use of all or nearly all of the pixels of a display by applications. Examples of immersive environments are provided below as part of describing the techniques, though they are not exhaustive or intended to limit the techniques described herein.
System-interface module 126 provides one or more interfaces through which interaction with operating system 120 is enabled, such as an application-launching interface, a start menu, or a system tools or options menu, to name just a few.
Operating system 120, modules 122, 124, and 126, as well as gesture handler 128 and application manager 130 can be separate from each other or combined or integrated in any suitable form.
Example Methods
Example methods 200, 800, and 900 address edge gestures, example methods 1400 and 1700 address switching back to a previously-interacted with application, and methods 1900, 2100, and 2300 address thumbnail-image selection of applications. Any one or more of methods 200, 800, 900, 1400, and 1700 may be used separately or in combination with, in whole or in part, methods 1900, 2100, and/or 2300. An edge gesture may be used to select to switch back to a prior application or select to present a user interface having selectable thumbnail images, as but two example ways in which the various methods can be combined or act complimentary, though use of the edge gesture is not required by methods 1400, 1700, 1900, 2100, and/or 2300.
FIG. 2 depicts a method 200 for enabling edge gestures based on the edge gesture being approximately perpendicular to an edge in which the gesture begins. In portions of the following discussion reference may be made to system 100 of FIG. 1, reference to which is made for example only.
Block 202 receives a gesture. This gesture may be received at various parts of a display, such as over a windows-based interface, an immersive interface, or no interface. Further, this gesture may be made and received in various manners, such as a pointer tracking a movement received through a touch pad, mouse, or roller ball or a physical movement made with arm(s), finger(s), or a stylus received through a motion-sensitive or touch-sensitive mechanism.
By way of example consider FIG. 3, which illustrates a tablet computing device 106. Tablet 106 includes a touch-sensitive display 302 shown displaying an immersive interface 304 that includes a webpage 306. As part of an ongoing example, at block 202 gesture handler 128 receives gesture 308 as shown in FIG. 3.
Block 204 determines whether a start point of the gesture is at an edge. As noted above, the edge in question can be an edge of an application interface, whether immersive or windows-based, and/or of a display. In some cases, of course, an edge of an application interface is also an edge of a display. The size of the edge can vary based on various factors about the display or interface. A small display or interface may have a smaller size in absolute or pixel terms than a large display or interface. A highly sensitive input mechanism permits a smaller edge as well. Example edges are rectangular and vary between one and twenty pixels in one dimension and an interface limit of the interface or display in the other dimension, though other sizes and shapes, including convex and concave edges may instead be used.
Continuing the ongoing example, consider FIG. 4, which illustrates immersive interface 304 and gesture 308 of FIG. 3 as well as left edge 402, top edge 404, right edge 406, and bottom edge 408. For visual clarity webpage 306 is not shown. In this example the dimensions of the interface and display are of a moderate size, between that of smart phones and that of many laptop and desktop displays. Edges 402, 404, 406, and 408 have a small dimension of twenty pixels, an area of each shown bounded by dashed lines at twenty pixels from the display or interface limit at edge limit 410, 412, 414, and 416, respectively.
Gesture handler 128 determines that gesture 308 has a start point 418 and that this start point 418 is within left edge 402. Gesture handler 128 determines the start point in this case by receiving data indicating [X,Y] coordinates in pixels at which gesture 308 begins and comparing the first of these coordinates to those pixels contained within each edge 402-408. Gesture handler 128 often can determine the start point and whether it is in an edge faster than a sample rate, thereby causing little or no performance downgrade from techniques that simply pass gestures directly to an exposed interface over which a gesture is made.
Returning to method 200 generally, if block 204 determines that the start point of the gesture is not at an edge, method 200 proceeds along a “No” path to block 206. Block 206 passes the gestures to an exposed application interface, such as an underlying interface over which the gesture was received. Altering the ongoing example, assume that gesture 308 was determined not to have a start point within an edge. In such a case gesture handler 128 passes buffered data for gesture 308 to immersive application interface 304. After passing the gesture, method 200 ends.
If block 204 determines that the start point of the gesture is in an edge, method 200 proceeds along a “Yes” path to block 208. Block 208 responds to the positive determination of block 204 by determining whether a line from the start point to a later point of the gesture is approximately perpendicular from the edge.
Block 208, in some embodiments, determines the later point used. Gesture handler 128, for example, can determine the later point of the gesture based on the later point being received a preset distance from the edge or the start point, such as past edge limit 410 for edge 402 or twenty pixels from start point 418, all of FIG. 4. In some other embodiments, gesture handler 128 determines the later point based on it being received a preset time after receipt of the start point, such an amount of time slightly greater than used generally by computing device 102 to determine that a gesture is a tap-and-hold or hover gesture.
For the ongoing embodiment, gesture handler 128 uses a later-received point of gesture 308 received outside of edge 402 so long as that later-received point is received within a preset time. If no point is received outside of the edge within that preset time, gesture handler 128 proceeds to block 206 and passes gesture 308 to immersive interface 304.
Using the start point, block 208 determines whether a line from the start point to the later point of the gesture is approximately perpendicular to the edge. Various angles of variance can be used in this determination by block 208, such as five, ten, twenty, or thirty degrees.
By way of example, consider an angle of variance of thirty degrees from perpendicular. FIG. 5 illustrates this example variance, showing immersive interface 304, gesture 308, left edge 402, left edge limit 410, and start point 418 of FIGS. 3 and 4 along with a thirty-degree variance lines 502 from perpendicular line 504. Thus, gesture handler 128 determines that line 506 from start point 418 to later point 508 (which is at about twenty degrees from perpendicular) is approximately perpendicular based on being within the example thirty-degree variance line 502.
Generally, if block 208 determines that the line is not approximately perpendicular to the edge, method 200 proceeds along a “No” path to block 206. As noted in part above, block 208 may also determine that a later point or other aspect of a gesture disqualifies the gesture. Examples include when a later point is within the edge, such as due to a hover, tap, press-and-hold, or up-and-down gesture (e.g., to scroll content in the application interface), or when the gesture is set to be a single-input gesture and a second input is received (e.g., a first finger starts at an edge but a second finger then lands anywhere).
If block 208 determines that the line is approximately perpendicular based a later point outside the edge, method 200 proceeds along a “Yes” path to block 210.
Block 210 responds to the positive determination of block 208 by passing the gesture to an entity other than the exposed application interface. This entity is not an application interface over which the gesture was received, assuming it was received over an application interface at all. Block 210 may determine to which entity to pass the gesture as well, such as based on an edge or region of an edge in which the start point of the gesture is received. Consider FIG. 6, for example, which illustrates immersive interface 304 and edges 402, 404, 406, and 408 of FIG. 4 but adds top region 602 and bottom region 604 to right edge 406. A start point in top region 602 can result in a different entity (or even a same entity but a different application interface provided in response) than a start point received to bottom region 604. Likewise, a start point in top edge 404 can result in a different entity or interface than left edge 402 or bottom edge 408.
In some cases, this entity is an application associated with the application interface. In such a case, passing the gesture to the entity can be effective to cause the application to present a second application interface enabling interaction with the application. Thus, a media player playing a movie can present a second application interface enabling selection of subtitles or a director's commentary. This capability is permitted in FIG. 1, where one of applications 132 can include or be capable of presenting more than one application interface 138. Thus, block 210 can pass the gesture to system-interface module 126, the one of applications 132 currently presenting the application interface, or another of applications 132, to name just three possibilities.
Concluding the ongoing embodiment, at block 210 gesture handler 128 passes gesture 308 to system-interface module 126. System-interface module 126 receives the buffered portion of gesture 308 and continues to receive the rest of gesture 308 as it is made by the user. FIG. 7 illustrates a possible response upon receiving gesture 308, showing an application-selection interface 702 presented by system-interface module 126 and over immersive interface 304 and webpage 306 from FIG. 3. Application-selection interface 702 enables selection of various other applications and their respective interfaces at selectable application tiles 704, 706, 708, and 710.
The example application-selection interface 702 is an immersive application interface presented using immersive mode module 124, though this is not required. Presented interfaces may instead be windows-based and presented using windows-based module 122. Both of these modules are illustrated in FIG. 1.
Block 210 may also or instead determine to pass the gesture to different entities and/or interfaces based on other factors about the gesture received. Example factors are described in greater detail in method 800 below.
Note that method 200 and other methods described hereafter can be performed in real-time, such as while a gesture is being made and received. This permits, among other things, an application interface presented in response to a gesture to be presented prior to completion of the gesture. Further, the application interface can be presented progressively as the gesture is received. This permits a user experience of dragging out the application interface from the edge as the gesture is performed with the application interface appearing to “stick” to the gesture (e.g., to a mouse pointer or person's finger making the gesture).
FIG. 8 depicts a method 800 for enabling edge gestures including determining an interface to present based on some factor of the gesture. In portions of the following discussion reference may be made to system 100 of FIG. 1, reference to which is made for example only. Method 800 may act wholly or partly separate from or in conjunction with other methods described herein.
Block 802 determines that a gesture made over an application interface has a start point at an edge of the application interface and a later point not within the edge. Block 802 may operate similarly to or use aspects of method 200, such as determining a later point on which to base block 802's determination. Block 802 may act differently as well.
In one case, for example, block 802 determines that a gesture is a single-finger swipe gesture starting at an edge of an exposed immersive application interface and having a later point not at the edge but not based on an angle of the gesture. Based on this determination, block 802 proceeds to block 804 rather than pass the gesture to the exposed immersive application interface.
Block 804 determines which interface to present based on one or more factors of the gesture. Block 804 may do so based on a final or intermediate length of the gesture, whether the gesture is single or multi-point (e.g., a single-finger or multi-finger gesture), or a speed of the gesture. Thus, block 804 may determine to present a start menu in response to a multi-finger gesture, an application-selection interface in response to a relatively short single-finger gesture, or a system-control interface permitting selection to shut down computing device 102 in response to relatively long single-finger gesture, for example. To do so, gesture handler 128 may determine the length of the gesture or a number of inputs (e.g., fingers). In response, block 806 presents the determined application interface.
Assume, by way of example, that gesture handler 128 determines, based on a factor of the gesture, to present an application interface enabling interaction with operating system 120. In response, system-interface module 126 presents this application interface. Presentation of the application interface can be similar to manners described in other methods, such as with a progressive display of application-selection user interface 702 of FIG. 7.
Following method 200 and/or method 800 in whole or in part, the techniques may proceed to perform method 900 of FIG. 9. Method 900 enables expansion of an application interface, presentation of another interface, or ceasing presentation of the application interface presented in response to an edge gesture.
Block 902 receives a successive point of the gesture and after presentation of at least some portion of the second application interface. As noted in part above, methods 200 and/or 800 are able to present or cause to be presented a second application interface, such as a second application interface for the same application associated with a current application interface, a different application, or a system interface.
By way of example, consider FIG. 10, which illustrates a laptop computer 104 having a touch-sensitive display 1002 displaying a windows-based email interface 1004 and two immersive interfaces 1006 and 1008. Windows-based email interface 1004 is associated with an application that manages email, which can be remote or local to laptop computer 104. FIG. 10 also illustrates two gestures, 1010 and 1012. Gesture 1010 proceeds in a straight line while gesture 1012 reverses back (shown with two arrows to show two directions).
FIG. 11 illustrates gesture 1010 having a start point 1102, a later point 1104, and a successive point 1106, and gesture 1012 having a same start point 1102, a later point 1108, and a first successive point 1110, and a second successive point 1112. FIG. 11 also shows a bottom edge 1114, a later-point area 1116, and an interface-addition area 1118.
Block 904 determines, based on the successive point, whether the gesture includes a reversal, an extension, or neither. Block 904 may determine a reversal by determining that a successive point is at the edge or is closer to the edge than a prior point of the gesture. Block 904 may determine that the gesture extends based on the successive point being a preset distance from the edge or the later point. If neither of these is determined to be true, method 900 may repeat blocks 902 and 904 to receive and analyze additional successive points until the gesture ends. If block 904 determines that there is a reversal, method 900 proceeds along “Reversal” path to block 906. If block 904 determines that the gesture is extended, method 900 proceeds along an “Extension” path to block 908.
In the context of the present example, assume that gesture handler 128 receives first successive point 1110 of gesture 1012. Gesture handler 128 then determines that first successive point 1110 is not at edge 1114, is not closer than a prior point of the gesture to edge 1114 (e.g., is not closer than later point 1108), and is not a preset distance from the edge or later point by not being within interface-addition region 1118. In such a case method 900 returns to block 902.
On a second iteration of block 902, assume that gesture handler 128 receives second successive point 1112. In such a case, gesture handler 128 determines that second successive point 1112 is closer to edge 1114 than first successive point 1110 and thus gesture 1012 includes a reversal. Gesture handler 128 then proceeds to block 906 to cease to present the second application interface previously presented in response to the gesture. By way of example, consider FIG. 12, which illustrates an email handling interface 1202. In this example case of block 906, gesture handler 128 causes the email application to cease to present interface 1202 in response to a reversal of gesture 1012 (not shown removed).
Block 908, however, presents or causes presentation of a third application interface or expansion of the second application interface. Continuing the ongoing example, consider FIG. 13, which illustrates additional-email-options interface 1302 in response to gesture 1010 determined to have successive point 1106 a preset distance from edge 1114, in this case being within interface-addition region 1118 of FIG. 11. This region and preset distance can be set based on a size of the application interface previously presented in response to the gesture. Thus, a user wishing to add additional controls may simply extend the gesture past the application interface presented in response to an earlier portion of the gesture.
Method 900 can be repeated to add additional application interfaces or expand a presented application interface. Returning to the example interface 702 of FIG. 7, for example, gesture handler 128 can continue to add interfaces or controls to interface 702 as gesture 308 extends past interface 702, such as by presenting an additional set of selectable application tiles. If gesture 308 extends past the additional tiles, gesture handler 128 may cause system-interface module 126 to present another interface adjacent the tiles to enable the user to select controls, such as to suspend, hibernate, switch modes (immersive to windows-based and the reverse), or shut down computing device 102.
While the above example application interfaces presented in response to an edge gesture are opaque, they may also be partially transparent. This can be useful by not obscuring content. In the movie example described above, an application interface presented can be partially transparent thereby permitting the movie to be only partially obscured during use of the application interface. Similarly, in the example of FIGS. 12 and 13, interfaces 1202 and 1302 may be partially transparent, thereby enabling a user to see the text of the email while also selecting a control in one of the interfaces.
As noted above, example methods 200, 800, and 900 address edge gestures and are described prior to methods 1400 and 1700, which address switching back to previously-interacted-with applications, which are in turn described prior to methods 1900, 2100, and 2300, which address selection of applications using thumbnail images. Any one or more of these methods may be used separately or in combination with, in whole or in part, any other methods.
FIG. 14 depicts a method 1400 for switching back to a previously-interacted-with application using a queue. In portions of the following discussion reference may be made to system 100 of FIG. 1, methods 200, 800, and/or 900, and example embodiments described above, reference to which is made for example only.
Block 1402 maintains a queue of multiple interacted-with applications, the queue arranged by most-recently-interacted-with to least-recently-interacted-with applications other than a current application. Consider, for example, FIG. 15, which illustrates an interaction order 1502 in which a user interacts with various applications. First, the user interacts with a web-searching application 1504 through its interface. Second, the user interacts with a web-enabled media application 1506 through a web browser. Third, the user interacts with a local (non-web) photo application 1508 through its interface. Fourth, the user interacts with a social-networking application 1510 through the web browser. Fifth, the user returns to interacting with the web-enabled media application 1506. Sixth, the user interacts with a web-enabled news application 1512 again through the web browser.
For the first interaction no queue is maintained as no other applications have been interacted with prior to this first interaction. For the second through sixth interactions of interaction order 1502, consider queues 1514, 1516, 1518, 1520, and 1522, which correspond to each interaction in interaction order 1502 after the first interaction, respectively. Queues 1514 to 1522 are example iterations of application queue 134 maintained by application manager 130, both of FIG. 1.
As shown in FIG. 15, application manager 130 keeps application queue 134 up-do-date based on a user's interactions. Queue 1522, for example, includes media application 1506 as the most-recently-interacted application, followed by social-networking application 1510, photo application 1508, and ending with web-searching application 1504. As the user interacts with media application 1506 twice (at the second and fifth interaction) application manager 130 removes it from application queue 134 at the fifth interaction and reorders the other applications to reflect an up-to-date order of interactions but excluding currently-interacted-with applications.
Block 1404 receives a gesture or gesture portions. This gesture or gesture portions can include one or more of the various gestures or portions described elsewhere herein. In some embodiments, gesture portions are received, each portion being part of one gesture and each resulting in presentation of an application in the queue.
Continuing the ongoing embodiment, consider again FIG. 3, which illustrates tablet computing device 106 having touch-sensitive display 302 shown displaying immersive interface 304 including webpage 306. For this example, assume that immersive interface 304 is associated with news application 1512 and that webpage 306 is content from news application 1512.
As part of this example, at block 1404, gesture handler 128 receives gesture 308 as shown in FIG. 3, which gesture handler 128 passes to application manager 130. For the ongoing example, assume that gesture 308 is determined to be associated with switching back to a previously-interacted-with application rather than some other function or application.
Block 1406, responsive to receiving the gesture or gesture portions, proceeds through the queue to another application of the multiple interacted-with applications. Thus, on receiving the gesture or gesture portion(s), application manager 130 may precede to the first, and thus the most-recently-interacted-with of the applications of application queue 134. In some embodiments, on receiving two gestures or portions, application manager 130 may proceed to the second most-recently-interacted-with application of application queue 134, though method 1400 may do so by repeating blocks 1404, 1406 and/or 1408, and so forth as described below.
Continuing the ongoing embodiment, assume that gesture 308 is received after the sixth interaction at which time the currently-interacted-with application is news application 1512 and that application queue 134 is up-to-date and represented by queue 1522 of FIG. 15. In such a case, application manager 130 proceeds to media application 1506 on receiving the gesture or gesture portion.
Block 1408 presents an application interface associated with the other application. This application interface, in some embodiments, is the same application interface through which interaction with the application was previously made. In some embodiments, the application interface is presented as a thumbnail or transparent overlay above the currently presented application interface. Application manager 130 presents this application interface alone or in combination with the associated application, such as by causing the associated application to present the application interface with which the user last interacted.
For this example, application manager 130 presents a thumbnail image of the application interface for the application progressively as gesture 308 is received and then expands the thumbnail to encompass the available real estate of the display when the gesture ends. Application manager 130 thereby replaces webpage 306 in immersive interface 304 or replaces immersive interface 304 with another interface, which can be immersive or windows-based.
This is illustrated in FIG. 16 with thumbnail image 1602 of an application interface of media application 1506 presented over immersive interface 304 and webpage 306 of news application 1512. After gesture 308 ends, thumbnail image 1602 expands into full-size application interface 1604, replacing webpage 306 in immersive interface 304. This is but one example manner for presenting the application interface for the selected application, other manners for responding progressively or otherwise are described elsewhere herein.
In some embodiments, block 1408 shrinks the current application interface to a second thumbnail image and passes the second thumbnail image toward a region of a display from which the first-mentioned thumbnail image is progressively presented. Thus, block 1408 expands thumbnail image 1602 into full-size application interface 1604 while shrinking webpage 306 to a thumbnail image and passing that thumbnail to the edge from which thumbnail image 1602 was selected.
During the presentation of the application interface at block 1408, another gesture or gesture portion may be received, returning to block 1404. In some cases, the other gesture or gesture portion is received within an amount of time while the application interface is presented by block 1408. Following the return to block 1404, block 1406 may then proceed to yet another or subsequent application of the multiple interacted-with applications. Continuing this progression, block 1408 then presents an application interface associated with the subsequent application of the multiple interacted-with applications.
Thus, by repeating blocks 1404, 1406, and 1408, application interfaces associated with previously interacted-with applications can be successively presented. In some cases, an application interface associated with a previously-interacted with application can be presented responsive to each gesture received. In the context of the present example, when another gesture is received while presenting the application interface of media application 1506, an application interface associated with social-networking application 1510 (the second most-recently interacted with application of queue 1522) is presented. Receiving yet another gesture or gesture portion during the presentation of the application interface associated with social-networking application 1510 results in a presentation of an application interface associated with photo application 1508 (the third most-recently interacted with application of queue 1522) and so forth.
Following this switch from presenting a current application to presenting another selected, prior application, block 1410 updates the queue responsive to interaction with, or a time period passing during presentation of, the application interface associated with the other application. In some cases a prior application may be selected and then another quickly selected after it, effectively a scanning through of the applications in the queue. In such cases, block 1410 may forgo updating the queue, as a quick viewing may not be considered an interaction.
Example interactions with which application manager 130 updates application queue 134 include an explicit selection to interact with the newly presented interface, such as to control playback or edit information relating to currently playing media using controls shown in full-size application interface 1604 of a media player. In other cases an interaction is determined based on a time period passing. Assume, for example, that the news application's webpage is presented on selection rather than being the current application. After some period, such as one, two, or three seconds, for example, application manager 130 determines that the delay is effectively an interaction based on a likelihood that the user is reading the news article in the webpage. Similarly, presentation of an application interface for a media application at block 1408 that is playing media and remains on the display without another selection of applications in application queue 134 can also be considered an interaction.
As noted in part above, application queue 134 can be circular. In so doing, selection of applications is not stopped but rather rolls if a user reaches a least-recently-interacted with application of application queue 134. For example, on selecting to switch back to a prior application from social-networking application 1510 and thus using queue 1518, switching back once results in selecting photo application 1508, twice results in media application 1506, and three times to web-searching application 1504. A fourth selection to switch back returns, in a circular fashion, to again result in presenting photo application 1508.
Method 1400 describes various ways in which the techniques can enable selection of previously-interacted-with applications and determine which to present based on a queue. Method 1700 may operate in conjunction with method 1400 and other methods described herein, though using a queue is not required. Therefore, method 1400 is not intended to limit the techniques as described in example method 1700.
FIG. 17 depicts a method 1700 for switching back to a previously-interacted-with application, which may or may not use a queue. In portions of the following discussion reference may be made to system 100 of FIG. 1, methods 200, 800, 900, 1400, and example embodiments described above, reference to which is made for example only.
Block 1702 enables selection of a previously-interacted-with application through a gesture made over a current application interface associated with a current application. Block 1702 may do so in various manners described above, such as with an edge gesture or portion thereof, as but one example.
Block 1704, responsive to receiving the gesture and without further selection, presents a previous application interface associated with the previously-interacted-with application.
Assume, for example, that a portion of a gesture is received associated with selection of a prior application, such as an edge gesture starting at an edge of the current application interface and proceeding approximately perpendicularly away from the edge. In response, block 1704 presents the application interface for the previously-interacted-with application or a thumbnail image of the interface, or some indicator that selection has successfully been made along with an indicator of the application or the interface selected.
Example thumbnail images or indicators include any of selectable application tiles 704, 706, 708, and 710 of FIG. 7 some of which include a thumbnail image of an interface while others indicate the application selected. Another example is thumbnail image 1602 of FIG. 16.
Block 1704 presents the application interface of the selected, previously-interacted-with application, as shown in FIG. 16 at full-size application interface 1604. In so doing, block 1704 may enable interaction with photo application 1508 through immersive interface 304 without further selection. Thus, a user after selecting, with as little as one gesture, a prior application may interact without needing to make another selection. The user need not select to exit an application-selection mode, for example, or make the presented interface “live” or primary or on top of the stack. Simply put, the techniques enable selection of a prior application and further interaction with that prior application with a single input.
In this example of FIG. 16, immediately after full-size application interface 1604 is presented and replaces webpage 306, a next input to immersive interface 304 is passed immediately to photo application 1508. Thus, a tap, hot key, or other input is passed directly to photo application 1508, thereby enabling an immediate response by photo application 1508 to the input.
In some embodiments, the gesture made over the current application interface includes portions, each of which indicates a selection of a prior application. In such a case, block 1704 presents the previous application interface in response to the first portion and then, responsive to block 1702 receiving the second portion of the gesture, presents a further-previous application interface associated with a further previously-interacted-with application, and so forth.
This is illustrated in FIG. 18, which presents immersive interface 304 of FIG. 16 (shown twice for visual clarity), and ways in which block 1704 can respond to multiple gestures or portions of a single gesture. FIG. 18 illustrates two progressive presentations, 1802 and 1804, and gesture 1806 having two gesture portions 1806-1 and 1806-2, respectively. First progressive presentation 1802 illustrates a drag from a left edge of immersive interface 304 of thumbnail image 1602, and thus selection of the previously-interacted with photo application 1508. Note that thumbnail image 1602 “sticks” to gesture portion 1806-1. Note also that gesture 1806, unlike gesture 308 of FIGS. 3 and 16, returns to the left edge. In response, rather than gesture 308 ending and full-size application interface 1604 replacing webpage 306, gesture portion 1806-1 of gesture 1806 returns to the edge at which it began. In this case thumbnail image 1602 is progressively displayed with gesture portion 1806-1 but then disappears when gesture portion 1806-1 returns to the edge or another invalid gesture ending position.
Gesture 1806 continues with second portion 1806-2. In response, block 1704 presents second progressive presentation 1804, illustrating a second drag from the left edge of immersive interface 304. Here a social network thumbnail image 1808 of a further prior application, social-networking application 1510, is progressively presented. Gesture 1806 returns to the left edge as part of second portion 1806-2. In response, block 1704 drops off thumbnail image 1808 when gesture portion 1806-2 returns to the edge. This is but one example of ways in which the techniques enable users to select and view prior applications, even all of the previously-interacted-with applications, with only a single gesture. At any point in this example, gesture 1806 may end or indicate selection to present the full application interface for the selected application, at which time block 1704 presents the application interface (e.g., full-size application interface 1604 of FIG. 16 or a full application interface for the social-networking application).
The preceding discussion describes some methods in which the techniques may enable switching back to a previously-interacted-with application. Other methods describe ways in which the techniques enable and/or use edge gestures. Still other methods addressing thumbnail-image selection of applications are described below. These methods are shown as sets of blocks that specify operations performed but are not necessarily limited to the order shown for performing the operations by the respective blocks.
FIG. 19 depicts a method 1900 enabling thumbnail-image selection of applications. In portions of the following discussion reference may be made to system 100 of FIG. 1, methods 200, 800, 900, 1400, 1700, and example embodiments described above, reference to which is made for example only.
Block 1902 maintains thumbnail images for applications. These applications, as noted herein, may be previously-interacted-with, recently interacted with, set by a user or other entity for inclusion based on settings or user interest or popularity, whether or not they have been recently interacted with, and so forth. They may be arranged in various manners, such as the order set for applications in application queue 134 noted above, though this is not required. Further, a number of applications can vary based on screen real estate, such as three thumbnail images for a smartphone, six for a tablet, and twelve for a large-display laptop or desktop computer, to name just a few.
Assume, for example, that manager 130 maintains up to six thumbnail images 140 based on a size of screen real estate for table computer 106. Assume also that manager 130 maintains up to six applications in application group 136, the six applications selected as the last four applications that are most-recently interacted with but that are not currently on screen, and two applications based on often being commonly used by a user associated with tablet computer 106. Thus, manager 130 builds the applications of application group 136 with the first four having an order similar to that of application queue 134 of FIG. 1 as described elsewhere herein, and, following these four applications, two that are often used but are not currently on screen and are not of the first four.
Block 1904 receives a gesture or gesture portion selecting presentation of the thumbnails. These gestures or gesture portions can include one or more of the various gestures or gestures portions described elsewhere herein, such as a pointer tracking a movement received through various mouse devices (e.g., a touch pad, roller-ball mouse, track-ball mouse, pencil-tip mouse, traditional mouse) or a physical movement made with arm(s), finger(s), or a stylus received through a motion-sensitive or touch-sensitive mechanism. This and prior or subsequent portions of a gesture may have, but are not required to have, a start point at an edge of a display, a later point not at the edge of the display, and a successive point at the edge of the display. Thus, a gesture having multiple portions in this case would look something like a multi-loop spiral, multiple circles, or a back-and-forth (e.g., zigzag) where each loop, circle, or back-and-forth starts, leaves, and returns to an edge of an application interface or display.
By way of example, consider a case where a gesture portion is part of an ongoing gesture that has a prior portion. Assume also that the prior portion selected one of applications 132, such as is shown in FIG. 16. In such a case, the portion of the gesture is received associated with selection of a prior application using an edge gesture starting at an edge of the current application interface and proceeding approximately perpendicularly away from the edge. In response, manager 130 presents a large thumbnail image for the previously-interacted-with application. This is shown with thumbnail image 1602 of FIG. 16.
The gesture portion received at block 1904, however, selects to cease presentation of the thumbnail image associated with the application, here thumbnail image 1602. In this example, the gesture portion returns toward the edge. In response, manager 130 ceases to present thumbnail image 1602 and determines that selection of a user interface having multiple selectable thumbnail images is intended.
Block 1906, responsive to receiving a first gesture or a gesture portion, presents a user interface on a display, the user interface having thumbnail images for applications, each of the thumbnail images a visual representation of an application interface for a respective one of the applications. Block 1906 may present the user interface in various manners, such as progressively from an edge of the display similar to as described for large thumbnail image 1602 above, though this is not required.
Continuing the ongoing example, consider FIG. 20, which illustrates webpage 306 in immersive interface 304, over which a user interface 2002 is presented. User interface 2002 includes thumbnail images 2004, 2006, 2008, 2010, 2012, and 2014, one for each of applications 132 of application group 136.
Block 1908 receives selection of a selected thumbnail image of the thumbnail images and through a second gesture or a later gesture portion, the second gesture or later gesture portion dragging the selected thumbnail image from the user interface to a region of the display.
The region to which the thumbnail is dragged can vary and result in different effects. The regions may include edges of a display, such as some of those shown in FIG. 6, for example. The regions may also or instead include those represented by a window or an immersive environment, such as email interface 1004 and two immersive interfaces 1006 and 1008 of FIG. 10. Effects based on a region to which a thumbnail is dragged are described as part of block 1910 below.
Block 1910, responsive to receiving the selection and based on the region of the display to which the selected thumbnail image is dragged, presents the application interface associated with the selected thumbnail image effective to enable interaction with a selected application associated with the selected thumbnail image.
Block 1910 presents the application interface at a size and/or location based in part on the region. For example, responsive to receiving a drag of thumbnail 2008 of FIG. 20 to a center of immersive environment 304 of FIG. 20, application manager 130 replaces webpage 306 with a full-size application interface representing an expansion of thumbnail 2008.
By way of another example, responsive to receiving a drag of a thumbnail to an edge, application manager 130 may snap the application interface to that edge and at a size of whatever application is currently at the edge or based on a previously set size for that window or immersive area. An application interface is “snapped” to a location and/or size by being automatically presented at the size or location without requiring a user to manually move to the location and size the application interface and/or precisely locate or size the application interface. Thus, a user may move a thumbnail image to a region roughly at an edge of a display after which application manager 130 precisely locates the application interface at the edge and at the appropriate (larger) size. The snap can be shown gradually, such as with the thumbnail image moving from the user interface (if selected without being moved) to the location and/or the thumbnail image being gradually enlarged to the size of the application interface, though this is not required. Examples of some of the many ways that the techniques may present an application interface associated with a selected thumbnail are shown in FIGS. 10 and 16.
Block 1910 may replace a prior-presented application interface associated with a prior application with a selected application's interface, assuming another application interface is presented. Concluding the ongoing example, assume that a user drags thumbnail 2010 over some portion of immersive interface 304 and then ends the gesture by lifting off his or her finger from the display or clicking on a mouse button or tapping a touch pad. In response, application manager 130 removes webpage 306 and presents an application interface, similar to the result, but not the gesture received, of FIG. 16 shown at full-size application interface 1604.
Optionally, the techniques may alter application group 136 effective to alter the thumbnails that are or will be presented should the user interface again be selected. Thus, on selecting thumbnail 2010 in the example above, on selecting thumbnail images later, block 1906 may cease to present thumbnail 2010 and instead present a thumbnail representing webpage 306.
Method 1900 enables selection of thumbnail images as well as the user interface presenting them through gestures, which may be mouse-based or otherwise. Method 2100 enables selection with mouse-based gestures, at least in part. As noted above, mouse-based gestures can use various devices, such as a touch pad, roller-ball mouse, traditional mouse, and so forth. These mouse-based gestures present a mouse pointer or other selector visible on a display through which a user interacts with a device.
Block 2102 maintains thumbnail images for applications, such as in the various manners set forth for block 1902 above.
Block 2104 receives a first mouse-based gesture. This first mouse-based gesture may be one of many gestures set forth above. Optionally, the techniques may indicate, prior to receiving the first mouse-based gesture, that the user interface is selectable, the indication showing indicia for each of the thumbnail images at an edge of the display.
By way of example, consider FIG. 22, which illustrates immersive interface 304 having webpage 306, a user interface indicia 2202, and thumbnail indicia 2204, 2206, 2208, 2210, 2212, and 2214. These indicia may be useful to lead a user to decide whether or not presentation of a user interface having thumbnails is desired by the user. Presentation of the indicia may be responsive to a user action or otherwise. Thus, on moving a pointer to an edge of the display, the techniques may present the indicia. After a further action, such as moving the pointer from a top or bottom corner of that edge toward the indicia, the user interface is presented as described below. Assume that a gesture selecting the thumbnail is received, such as through a movement of a pointer 2216 toward the indicia or a selection at the edge in which the indicia are shown (e.g., a click of a mouse, tap on a touchpad, or hover with a pointer).
Block 2106, responsive to receiving a first mouse-based gesture, presents a user interface on a display, the user interface having thumbnail images for applications, each of the thumbnail images a visual representation of an application interface for a respective one of the applications. One example interface is shown at user interface 2002 in FIG. 22.
Block 2108 receives selection of a selected thumbnail image of the thumbnail images and through a second mouse-based gesture. Example selections include a selection and drag, through a mouse-based gesture, from the user interface to a region of the display, as described in method 1900. Other selections include a hover, tap, or mouse click on the thumbnail image. Continuing the above example, assume that a hover of pointer 2216 is received over thumbnail image 2010 of FIG. 20, as shown in FIG. 22.
Block 2110, responsive to selection of the selected thumbnail image, presenting a menu within, over, or adjacent to the user interface, the menu enabling selection to present the application interface associated with the selected thumbnail image at a first display size or location and a second display size or location. An example menu is shown in FIG. 22 at menu 2218. Menu 2218 enables selection of multiple sizes and/or locations at which an application interface can be presented, here with a snap left control 2220, a full size control 2222, a snap right control 2224, and a remove control 2226.
Note that selection of snap left control 2220 selects to present the application interface snapped automatically to the left side of the display, whether in an immersive or windows-based environment. An example in an immersive environment is shown at immersive interface 1006 in FIG. 13. Similarly, snap right control 2224 results in the application interface snapped to the right side of the display, such as shown at email interface 1004 in FIG. 13. Remove control 2226 removes the associated thumbnail (here thumbnail 2010) from the user interface (here user interface 2002).
Block 2112, responsive to selection of the first or second display size or location, presents the application interface associated with the selected thumbnail image and at the selected first or second display size or location within the display, the presentation effective to enable interaction with a selected application associated with the selected thumbnail image. Concluding the ongoing example, assume that a user selects full size control 2222 using pointer 2216 (not shown). In response, application manager 130 presents the application interface associated with the selected thumbnail 2010, here full-size application interface 1604, as shown in FIG. 16.
Methods 1900 and 2100 enables selection of thumbnail images as well as the user interface presenting them as noted above. FIG. 23 illustrates method 2300, which addresses a more-detailed example of selecting applications through thumbnail images using one or more edge gestures. Method 2300 may be used, in whole or in part, in conjunction with methods 1900 and/or 2100; method 2300 is not intended to limit the application of methods 1900 and 2100.
Block 2302 receives a gesture having a first portion starting at an edge of a display, moving away from the edge, and made over a current application interface associated with a current application without presenting a visible, selectable control over the current application interface or on the display presenting the current application interface.
Block 2304, responsive to receiving the first portion of the gesture, presents a thumbnail image of the previous application interface progressively with the first portion of the gesture as the gesture is received. Thereafter, block 2306 receives a second portion of the gesture that moves toward the edge.
Block 2308, responsive to receiving the second portion of the gesture, presents a user interface on the display, the user interface having other thumbnail images for other applications, each of the other thumbnail images a visual representation of an application interface for a respective one of the other applications.
Block 2310 receives selection of a selected thumbnail image of the other thumbnail images and through a third portion of the gesture or another gesture, the third portion of the gesture or the other gesture dragging the selected thumbnail image from the user interface to a region of the display.
Block 2312, responsive to receiving the selection and based on the region of the display to which the selected thumbnail image is dragged, presents the application interface associated with the selected thumbnail image, the presentation effective to enable interaction with a selected application associated with the selected other thumbnail image. Method 2300 may be performed in many of the various manners set forth above.
The preceding discussion describes some methods in which the techniques may enable thumbnail-image selection of applications. Other methods describe ways in which the techniques enable and/or use edge gestures and/or switch back to previously-interacted-with applications. Aspects of these methods may be implemented in hardware (e.g., fixed logic circuitry), firmware, a System-on-Chip (SoC), software, manual processing, or any combination thereof. A software implementation represents program code that performs specified tasks when executed by a computer processor, such as software, applications, routines, programs, objects, components, data structures, procedures, modules, functions, and the like. The program code can be stored in one or more computer-readable memory devices, both local and/or remote to a computer processor. The methods may also be practiced in a distributed computing environment by multiple computing devices.
Example Device
FIG. 24 illustrates various components of example device 2400 that can be implemented as any type of client, server, and/or computing device as described with reference to the previous FIGS. 1-23 to implement techniques enabling edge gestures, switching back to a previously-interacted-with application, and/or thumbnail-image selection of applications. In embodiments, device 2400 can be implemented as one or a combination of a system-on-chip (SoC), wired and/or wireless device, as a form of television client device (e.g., television set-top box, digital video recorder (DVR), etc.), consumer device, computer device, server device, portable computer device, user device, communication device, video processing and/or rendering device, appliance device, gaming device, electronic device, and/or as another type of device. Device 2400 may also be associated with a user (e.g., a person) and/or an entity that operates the device such that a device describes logical devices that include users, software, firmware, and/or a combination of devices.
Device 2400 includes communication devices 2402 that enable wired and/or wireless communication of device data 2404 (e.g., received data, data that is being received, data scheduled for broadcast, data packets of the data, etc.). The device data 2404 or other device content can include configuration settings of the device, media content stored on the device, and/or information associated with a user of the device. Media content stored on device 2400 can include any type of audio, video, and/or image data. Device 2400 includes one or more data inputs 2406 via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs, messages, music, television media content, recorded video content, and any other type of audio, video, and/or image data received from any content and/or data source.
Device 2400 also includes communication interfaces 2408, which can be implemented as any one or more of a serial and/or parallel interface, a wireless interface, any type of network interface, a modem, and as any other type of communication interface. The communication interfaces 2408 provide a connection and/or communication links between device 2400 and a communication network by which other electronic, computing, and communication devices communicate data with device 2400.
Device 2400 includes one or more processors 2410 (e.g., any of microprocessors, controllers, and the like), which process various computer-executable instructions to control the operation of device 2400 and to enable techniques for thumbnail-image selection of applications. Alternatively or in addition, device 2400 can be implemented as a System-on-Chip (SoC) and/or with any one or combination of hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits which are generally identified at 2412. Although not shown, device 2400 can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.
Device 2400 also includes computer-readable storage media 2414, such as one or more memory devices that enable persistent and/or non-transitory data storage (i.e., in contrast to mere signal transmission), examples of which include random access memory (RAM), non-volatile memory (e.g., any one or more of a read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable compact disc (CD), any type of a digital versatile disc (DVD), and the like. Device 2400 can also include a mass storage media device 2416.
Computer-readable storage media 2414 provides data storage mechanisms to store the device data 2404, as well as various device applications 2418 and any other types of information and/or data related to operational aspects of device 2400. For example, an operating system 2420 can be maintained as a computer application with the computer-readable storage media 2414 and executed on processors 2410. The device applications 2418 may include a device manager, such as any form of a control application, software application, signal-processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, and so on.
The device applications 2418 also include any system components or modules to implement the techniques, such as device applications 2418 including system-interface module 126, gesture handler 128, application manager 130, and application(s) 132.
Conclusion
Although embodiments of techniques and apparatuses for thumbnail-image selection of applications have been described in language specific to features and/or methods, it is to be understood that the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations enabling thumbnail-image selection of applications.

## Claims

1. A computer-implemented method comprising:
receiving a first gesture or a gesture portion, at least a portion of the first gesture or gesture portion being over a first user interface associated with a first application;
analyzing the first gesture or gesture portion to determine whether to pass the first gesture or gesture portion to the first application, whether to display an application-selection user interface associated with a system-interface module, or whether to display a system-control user interface associated with the system-interface module, the analyzing based, at least in part, on a starting point and a second point of the first gesture or gesture portion;
responsive to determining to display the application-selection user interface, presenting, via the system-interface module, the application-selection user interface on a display, the application-selection user interface having thumbnail images for applications, each of the thumbnail images a visual representation of an application interface for a respective one of the applications, at least one thumbnail image being associated with a second application having a second user interface and at least one thumbnail image being associated with a third application having a third user interface, the second application and the third application being different, the system-interface module being associated with launching applications;
receiving a selection of one of the thumbnail images and through a second gesture or a later gesture portion;
responsive to receiving the selection, dragging the selected thumbnail image to a region of the display based, at least in part, on the second gesture or the later gesture portion; and
based on the region of the display to which the selected thumbnail image is dragged, presenting the application interface associated with the selected thumbnail image, the presenting effective to enable interaction with a selected application associated with the selected thumbnail image.

2. A computer-implemented method as described in claim 1, wherein the thumbnails are a smaller or lower-resolution image of the respective application interface as the respective application interface will appear responsive to selection of the thumbnail.

3. A computer-implemented method as described in claim 1, wherein the thumbnails are a smaller or lower-resolution image of the respective application interface as the respective application interface last appeared.

4. A computer-implemented method as described in claim 1, wherein one of the thumbnails includes a smaller or lower-resolution video of a video that will appear responsive to the selection of the one of the thumbnails.

5. A computer-implemented method as described in claim 1, wherein the region is an edge of the display and wherein presenting the application interface snaps the application interface to the edge.

6. A computer-implemented method as described in claim 5, wherein the presenting presents the application interface within an immersive environment and having a previously set size.

7. A computer-implemented method as described in claim 1, wherein the region is not at an edge of the display and wherein presenting the application interface presents the application on all or substantially all of the display.

8. A computer-implemented method as described in claim 1, wherein presenting the application-selection user interface progressively displays the application-selection user interface starting at an edge of the display.

9. A computer-implemented method as described in claim 8, wherein the first gesture or the gesture portion is an edge gesture received at the edge of the display from which application-selection user interface is progressively displayed.

10. A computer-implemented method as described in claim 1, wherein the gesture portion is part of an ongoing gesture, the ongoing gesture having a prior portion, the prior portion selecting one of the applications arranged in a queue, responsive to which a queued thumbnail image associated with the application in the queue is presented, and where the gesture portion selects to cease presentation of the thumbnail image associated with the application.

11. A computer-implemented method as described in claim 1, wherein the gesture portion is part of an ongoing gesture, the ongoing gesture having a first prior portion, the first prior portion having a start point at an edge of the display, a second prior portion having a later point not at the edge of the display, and the gesture portion following the second prior portion and having a successive point at the edge of the display.

12. A computer-implemented method as described in claim 1, wherein the first gesture and the second gesture or the gesture portion and the later gesture portion are received through a mouse or a touchpad.

13. A computer-implemented method as described in claim 1, further comprising, prior to presenting application-selection user interface, maintaining the thumbnail images for the applications based on the applications being previously interacted with, or commonly used or previously selected by a user associated with a device with which the display is associated.

14. A computer-implemented method as described in claim 1, wherein presenting the application interface associated with the selected thumbnail image replaces a previously-presented application interface associated with a prior application, and responsive to receiving a third gesture or another gesture portion, presenting a fourth user interface, the fourth user interface having a thumbnail image associated with the previously-presented application and the thumbnail images other than the selected thumbnail image.

15. A computer-implemented method comprising:
receiving a first touch-based gesture at least partially over a user interface associated with an immersive environment, the user interface associated with the immersive environment enabling interaction with one or more applications without controls provided through one or more window frames;
analyzing the touch-based gesture to determine whether to pass the first touch-based gesture to a first application associated with the user interface associated with the immersive environment, whether to display an application-selection user interface associated with a system-interface module, or whether to display a system-control user interface associated with the system-interface module based, at least in part, on a starting point and a second point of the first mouse-based gesture, the analyzing comprising analyzing the touch-based gesture to determine a final or intermediate length associated with the touch-based gesture, and an angle associated with the touch-based gesture;
responsive to determining to display the application-selection user interface, presenting the application-selection user interface associated with the system-interface module on a display, the application-selection user interface having thumbnail images for applications, each of the thumbnail images a visual representation of an application interface for a respective one of the applications, at least two of the applications having separate application interfaces, the system-interface module being associated with launching applications;
receiving selection of a selected thumbnail image of the thumbnail images and through a second touch-based gesture;
responsive to selection of the selected thumbnail image, presenting a menu within, over, or adjacent to the application-selection user interface associated with the system-interface module, the menu enabling selection to present the application interface associated with the selected thumbnail image at a first display size or location or a second display size or location; and
responsive to selection of the first or second display size or location, presenting the application interface associated with the selected thumbnail image and at the selected first or second display size or location within the display, the presenting effective to enable interaction with a selected application associated with the selected thumbnail image.

16. A computer-implemented method as described in claim 15, wherein the thumbnails are a smaller or lower-resolution image of the respective application interface as the respective application interface will appear responsive to selection of the thumbnail.

17. A computer-implemented method as described in claim 15, wherein the menu further enables selection to close the selected application or remove the selected thumbnail image from the application-selection user interface associated with the system-interface module.

18. A computer-implemented method as described in claim 15, further comprising, prior to receiving the first touch-based gesture, presenting an indication that the application-selection user interface associated with the system-interface module is selectable, the indication showing indicia for each of the thumbnail images at an edge of the display.

19. A computer-implemented method as described in claim 15, wherein the selected first or second display size or location is a size that is smaller than full size and presenting the application interface snaps the application interface to an edge of the display and within the immersive environment.

20. A system comprising: one or more computer processors; and one or more computer-readable storage media hardware having computer-readable instructions thereon that, responsive to execution by the one or more computer processors, perform operations comprising:
receiving a gesture having a first portion starting at an edge of a display, moving away from the edge, and made over a current application interface associated with a current application without presenting a visible, selectable control over the current application interface or on the display presenting the current application interface;
responsive to receiving the first portion of the gesture, presenting a thumbnail image of the previous application interface progressively with the first portion of the gesture as the gesture is received;
receiving a second portion of the gesture that moves toward the edge;
determining whether to display an application-selection interface associated with a system-interface module, whether to display a system-control user interface associated with the system-interface module, or to pass the gesture to the current application based, at least in part, on the first portion of the gesture and the second portion of the gesture, the determining comprising analyzing the first portion of the gesture and the second portion of the gesture to determine an angle associated with the gesture, and a speed associated with the gesture;
responsive determining to display the application-selection interface associated with the system-interface module, presenting, via the system-interface module, the application-selection user interface associated with the system-interface module on the display, the application-selection user interface associated with the system-interface module having comprising other thumbnail images for other applications, each of the other thumbnail images a visual representation of an application interface for a respective one of the other applications;
receiving selection of one of the thumbnail images and through a third portion of the gesture or another gesture, the third portion of the gesture or the other gesture dragging the selected thumbnail image from the system-interface application user interface to a region of the display; and
responsive to receiving the selection and based on the region of the display to which the selected thumbnail image is dragged, presenting the application interface associated with the selected thumbnail image, the presenting effective to enable interaction with a selected application associated with the selected other thumbnail image.