# Patent

## Title
Closing applications

## Abstract

Application closing techniques are described. In one or more implementations, a computing device recognizes an input as involving selection of an application displayed in a display environment by the computing device and subsequent movement of a point of the selection toward an edge of the display environment. Responsive to the recognizing of the input, the selected application is closed by the computing device.

## Background
BACKGROUND
Users have access to computing devices that may assume a wide variety of configurations. For example, the first computing devices that were traditionally available to common users were configured as desktop personal computers. Users typically interacted with these first computing devices using a keyboard and later a mouse to view data on a monitor.
Computing devices continued to evolve as users desired to interact with the devices in an increasing variety of circumstances. One such example was mobile phones that evolved from basic telephone functionality to the ability to run applications. Another such example is a slate computer, which may also be referred to as a tablet. Both of these examples are configured to be held by a user during interaction and thus techniques were developed to address this configuration.
Because of the different configurations of the computing devices, however, a variety of different techniques may be employed for interaction. Thus, even typical users may be confronted with a wide range a different techniques, even to utilize matching functionality of the devices, which could lead to user frustration and even cause the users to forgo use of computing devices having the different configurations due to user confusion. Further, these conventional techniques could be intrusive when employed by the different configurations, such as convention techniques that were used to close an application.
SUMMARY
Application closing techniques are described. In one or more implementations, a computing device recognizes an input as involving selection of an application displayed in a display environment by the computing device and subsequent movement of a point of the selection toward an edge of the display environment. Responsive to the recognizing of the input, the selected application is closed by the computing device.
In one or more implementations, a computing device recognizes a selection input as initiating selection of an application displayed in a display environment of the computing device, the selection made at a portion of the application displayed proximal to a first edge of the display environment. Responsive to the recognition of the selection input, a display characteristic of the application is changed to indicate the selection of the application. The display of the application having the changed display characteristic is also caused to follow subsequent movement of the selection as indicated by one or more inputs. A closing input is recognized through the subsequent movement as crossing a threshold defined in relation to a second edge of the display environment. Responsive to the recognizing of the closing input, a further change in one or more display characteristics of the application is caused to indicate availability of an operation to initiate closing of the application.
In one or more implementations, a computing device enters a mode to close an application responsive to recognition of one or more inputs to select an application displayed in a display environment by the computing device, the mode operable to change a display characteristic of the application and cause the display of the application to follow subsequent movement described by an input device used to select the application. The computing device exits the mode to close the application responsive to detection that the one or more inputs have ceased.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.



BRIEF DESCRIPTION OF THE DRAWINGS
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
FIG. 1 is an illustration of an environment in an example implementation that is operable to implement application closing techniques described herein.
FIG. 2 illustrates a system in an example implementation of computing device of FIG. 1 as supporting selection of an application in a display environment.
FIG. 3 depicts a system in an example implementation in which a computing device indicates availability of an operation to close the application of FIG. 2.
FIG. 4 depicts a system in an example implementation in which a user has initiated the closing of an application.
FIG. 5 is an illustration of a system in an example implementation showing areas of a display environment defined by thresholds to perform different actions after selection of an application as shown in FIG. 2.
FIG. 6 depicts a system in an example implementation in which an application closing technique is applied to a docked application.
FIG. 7 depicts a system in an example implementation in which close techniques are used to close an application that is available via a back stack maintained by the operating system.
FIG. 8 depicts a system in an example implementation in which a “close all” operation is supported by an operating system of the computing device.
FIG. 9 is a flow diagram depicting a procedure in an example implementation in which one or more inputs are recognized as indicating initiation of a closing operation.
FIG. 10 is a flow diagram depicting a procedure in an example implementation in which display characteristics are changed to indicate selection and availability of a close operation to close an application.
FIG. 11 is a flow diagram depicting a procedure in an example implementation in which a mode is entered that is usable to close one or more applications.
FIG. 12 illustrates an example system that includes the computing device as described with reference to FIG. 1.
FIG. 13 illustrates various components of an example device that can be implemented as any type of computing device as described with reference to FIGS. 1-8 and 12 to implement embodiments of the techniques described herein.



DETAILED DESCRIPTION
Overview
The diversity of computing devices with which a user interacts even in a typical day is growing rapidly. However, conventional techniques via which a user interacted with the devices were often optimized for these configurations. Thus, different techniques could be employed by different computing device configurations, even to access matching functionality. Additionally, development of new configurations could confound users due to the new ways in which a user could interact with the device, which could even result in a user forgoing interaction with unfamiliar device configurations.
Application closing techniques are described. In one or more implementations, techniques are described in which a user may cause a computing device to close one or more applications in an intuitive manner. This may include recognition of selection of the application by a user, such as by selecting a top edge of the application as displayed in a display environment using a cursor control device, a finger of a user's hand using touchscreen functionality, and so forth. Once selected, a point at which the display of the application was selected (e.g., a cursor or point of contact) may then be moved toward an edge of the display environment, such as a bottom edge implemented by one or more display devices.
The computing device, e.g., through execution of an operating system of the computing device, may then recognize an intent of the user to close the application and initiate this process. In one or more implementations, animations and display characteristics may be utilized to provide user feedback, such as to indicate selection of the application, availability of the close operation when the subsequent movement has reached a defined threshold, and so on. In this way, a user is provided with an intuitive technique to close applications that may be leveraged in a variety of different computing environments, examples of which are described in relation to FIG. 12.
In the following discussion, an example environment is first described that may employ the application closing techniques described herein. Example procedures are then described which may be performed in the example environment as well as other environments. Consequently, performance of the example procedures is not limited to the example environment and the example environment is not limited to performance of the example procedures.
Example Environment
FIG. 1 is an illustration of an environment 100 in an example implementation that is operable to employ application closing techniques described herein. The illustrated environment 100 includes a computing device 102 having a processing system 104 and a computer-readable storage medium that is illustrated as a memory 106 although other confirmations are also contemplated as further described below.
The computing device 102 may be configured in a variety of ways. For example, a computing device may be configured as a computer that is capable of communicating over a network, such as a desktop computer, a mobile station, an entertainment appliance, a set-top box communicatively coupled to a display device, a wireless phone, a game console, and so forth. Thus, the computing device 102 may range from full resource devices with substantial memory and processor resources (e.g., personal computers, game consoles) to a low-resource device with limited memory and/or processing resources (e.g., traditional set-top boxes, hand-held game consoles) as further described in relation to FIG. 12. Additionally, although a single computing device 102 is shown, the computing device 102 may be representative of a plurality of different devices, such as multiple servers utilized by a business to perform operations such as by a web service, a remote control and set-top box combination, an image capture device and a game console configured to capture gestures, and so on.
The computing device 102 is further illustrated as including an operating system 108. The operating system 108 is configured to abstract underlying functionality of the computing device 102 to applications 110 that are executable on the computing device 102. For example, the operating system 108 may abstract the processing system 104, memory 106, network, and/or display device 112 functionality of the computing device 102 such that the applications 110 may be written without knowing “how” this underlying functionality is implemented. The application 110, for instance, may provide data to the operating system 108 to be rendered and displayed by the display device 112 without understanding how this rendering will be performed. The operating system 108 may also represent a variety of other functionality, such as to manage a file system and user interface that is navigable by a user of the computing device 102.
The operating system 108 is also illustrated as including an environment module 114 which is representative of functionality of the computing device 102 to provide an environment via which a user may interact with the applications 110 and other data of the computing device 102, both local to the device as well as remotely via a network. A variety of different environments may be supported by the environment module 114, which may be configured to accept inputs to interact with the operating system 108 and applications 110 of the computing device 102 to access functionality of the computing device 102, such as the abstracted functionality described above.
One such environment is referred to as an immersive environment which may be configured to support interaction with the applications 110 with little to no window frame. Additionally, the immersive environment may support interaction with the applications 110 without requiring the user to manage a corresponding window frame's layout, primacy of the window with respect to other windows (e.g., whether a window is active, in front of behind other windows, an order of the windows, and so on). Although illustrated as part of the operating system 108, the environment module 114 may be implemented in a variety of other ways, such as a stand-alone module, remotely via a network, and so forth.
In one or more implementations, the immersive environment of the operating system 108 is configured such that it is not closeable or capable of being uninstalled apart from the operating system 108. Additionally, the immersive environment may be configured to consume a significant portion of an available display area of the display device 112. A user may interact with the immersive environment in a variety of ways, such as via a cursor control device, using one or more gestures involving a touch input, using speech recognition, capture using one or more depth-sensing cameras, and so on. Thus, the environment module 114 may manage the immersive environment in which content of applications 110 may be presented and the presentation may be performed without requiring a user to manage size, location, primacy, and so on of windows used to display the content of the applications 110.
For example, as shown on a user interface displayed by the display device 112, a user interface is shown that is configured to display data 116, 118 from two applications in a “docked” configuration. In this example, both of the applications that correspond to the data are enabled to actively execute by the computing device 102 while execution is suspended for other of the applications 110 that do not currently display data. A gutter 120 is disposed between the displays of the data 116, 118 that may be moveable to change an amount of display area consumed by applications on the display device 112, respectively.
The immersive environment may support a wide variety of functionality to provide an immersive experience for a user to access the applications 110. In the following discussion, this functionality is discussed in relation to leveraging these techniques to close an application. It should be readily apparent, however, that these techniques may be employed for managing interaction in other environments and/or with the applications 110 themselves without departing from the spirit and scope thereof
For example, the environment module 114 may also be configured to support a desktop environment. The desktop environment is representative of another configuration of a user interface output by the operating system 108 when in this example is to interact with the applications 110 and other data. For example, the desktop environment may be configured to present applications and corresponding data through windows having frames. These frames may provide controls through which a user may interact with an application as well as controls enabling a user to move and size the window. The desktop environment may also support techniques to navigate through a hierarchical file structure through the use of folders and represent the data and applications through use of icons. In one or more implementations, the desktop environment may also be utilized to access application s 110 that are configured specifically for interaction via the desktop environment and not configured for access via the immersive shell 116, although other implementation are also contemplated.
Thus, it should be readily apparent that the techniques described to close applications herein may be supported in a wide range of environments, such as an immersive environment, a desktop environment, or other environment as further described in relation to FIG. 2.
Further, these techniques are not limited to inputs provided by a user. For example, the operating system 108 may incorporate a process lifetime manager (PLM) that is configured to automatically manage whether applications 110 are actively executed, suspended (e.g., frozen—still open but not consuming processing system 104 resources), or terminated (e.g., closed). As applications 110 transition between these parts of the “application lifecycle,” the application may receive two events—visibility and suspension—that indicate whether the application 110 is “visible” on-screen and/or whether the application 110 is about to become “suspended.” These events help to make the application 110 aware as to what to expect next, which may be used to indicate to the application 110 to save certain types of data. Accordingly, the environment module 114 may be configured to ensure that the applications 110 proceed through the typical “application lifecycle” and therefore receives these same events when closed. In one or more implementations, this is different than functionality employed by a task manager to “kill” (e.g., stop execution) of an application, which does not involve sending events to the application 110. The result of closing an app through the typical “application lifecycle” is that the application 110 is able to save user data and exit gracefully.
Generally, any of the functions described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), or a combination of these implementations. The terms “module,” “functionality,” and “engine” as used herein generally represent software, firmware, hardware, or a combination thereof. In the case of a software implementation, the module, functionality, or engine represents program code that performs specified tasks when executed on a processor (e.g., CPU or CPUs). The program code can be stored in one or more computer readable memory devices. The features of the techniques described below are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
For example, the computing device 102 may also include an entity (e.g., software) that causes hardware of the computing device 102 to perform operations, e.g., processors, functional blocks, and so on. For example, the computing device 102 may include a computer-readable medium that may be configured to maintain instructions that cause the computing device, and more particularly hardware of the computing device 102 to perform operations. Thus, the instructions function to configure the hardware to perform the operations and in this way result in transformation of the hardware to perform functions. The instructions may be provided by the computer-readable medium to the computing device 102 through a variety of different configurations.
One such configuration of a computer-readable medium is signal bearing medium and thus is configured to transmit the instructions (e.g., as a carrier wave) to the hardware of the computing device, such as via a network. The computer-readable medium may also be configured as a computer-readable storage medium and thus is not a signal bearing medium. Examples of a computer-readable storage medium include a random-access memory (RAM), read-only memory (ROM), an optical disc, flash memory, hard disk memory, and other memory devices that may use magnetic, optical, and other techniques to store instructions and other data.
FIG. 2 illustrates a system 200 in an example implementation of the computing device 102 of FIG. 1 as supporting selection of application in a display environment. The system 200 is illustrated as including first and second stages 202, 204. At the first stage 202, the computing device 102 is illustrated as outputting a user interface 206 of a social network application in an immersive environment and displaying the user interface 206 on a display device, although other environments are contemplated as previously described. Further, it should be noted that although a display environment implemented using a single display device is shown, it should be readily apparent that a display environment may leverage a plurality of display devices without departing from the spirit and scope thereof.
A finger of the user's hand 106 is illustrated in the first stage as selecting a portion of a display of the application that is near a top edge 210 of a display environment. The selection may be detected using touchscreen functionality of the display device 112, such as to contact the display device 112. A variety of other examples are also contemplated, such as through positioning of a cursor through use of a cursor control device near the top edge 210 and then performing a “click and hold” in which a button of the cursor control device is “held down.”
As shown in the second stage 204 of FIG. 2, the point at which the application was selected is then moved away from the top edge 210 and toward a bottom edge 212. In response to this movement the display of the application is configured to follow this subsequent movement of the selection of the application. Further, display characteristics of the application may be changed to indicate the selection, such as lessening an amount of display area of the display environment consumed by the display of the application, thereby exposing a background 214 of the display environment, e.g., a background utilized by the operating system 108. Other characteristics are also contemplated, such as changing a transparency of the display, color, and so forth. Thus, these characteristics may be used to give feedback to the user regarding selection of the application. This selection may then be used as a basis to manage how and if the application is displayed, as further described in relation to the following figure.
FIG. 3 depicts a system 300 in an example implementation in which a computing device indicates availability of an operation to close the application of FIG. 2. In this illustration, subsequent movement of the finger of the user's hand has continued toward the bottom edge 212 of the display environment.
Once movement past a threshold has been detected by the environment module 114, the environment module 114 may again cause display characteristics of the display of the application to change to indicate availability of a close operation. As before, this may include changing a size as illustrated, transparency, color, a “speed bump” in which the movement of the selected display of the application is slowed to indicate crossing of the threshold, and so on of the display of the application. Thus, at this point a user is made aware of the availability of the close operation and may then choose to do so as further described in relation to the following figure.
FIG. 4 depicts a system 400 in an example implementation in which a user has initiated the closing of an application. In this example, a user has lifted a finger of the user's hand 208 away from the display device 112. This causes the environment module 114 to exit the selection mode in which the user could reposition the display of the application. Further, because this selection occurred while the display of the application indicated availability of the close operation (due to passing of the threshold), the environment module 114 may initiate the operation to close the application. The may include removing the application from availability for execution, such that if execution was desired the application would first be reloaded by the operating system 108.
The close operation may be accompanied by one or more animations or other display techniques to indicate that the operation has been initiated to provide feedback to the user. This may include further shrinking and movement of the display of the application “off” the display device 112 as indicated by the arrows in FIG. 4. In this example, a user initiated the operation to close the application. The environment module 114 may also include functionality such that a user may cease initiation of this operation, of further described in relation to the following figure.
FIG. 5 is an illustration of a system 500 in an example implementation showing areas of a display environment defined by thresholds to perform different actions after selection of an application as shown in FIG. 2. A close 502 region is shown as defined between a threshold 504 and a bottom edge 212 of the display environment. In this example, the threshold 504 is defined statically, e.g., at a defined distance from the bottom edge 212, such as for a gesture recognized using touch functionality of the display device 112. Other examples are also contemplated, such as a dynamic threshold defined as a percentage of movement between edges (e.g., the top and bottom edges 210, 212), such as twenty five percent for movement input using a cursor control device.
Thus, the close 502 region may be used to define “when” the close operation is available for an application that is “moved within” the region. This may include changing display characteristics to indicate availability as described in relation to FIG. 3.
Use of regions may also be used to allow a user to exit this mode, such as in an instance in which a user reconsiders, inadvertently entered the mode the close the application, and so on. For example, once moving into the close 502 region and upon receiving feedback that the close operation is available through the change in display characteristics, the user may reconsider. Accordingly, the user may then move a point of contact (e.g., a finger of the user's hand 208) back outside of the close 502 region. Accordingly, the environment module 114 may return the display of the application to the selection state as shown in FIG. 2.
Other regions may also be defined for implementation as part of the display environment. For example, a discard 506 region may be defined along another edge of the display environment, e.g., the left edge in the illustrated example. Movement of the display of the application in the selected state to the discard 506 region may cause the environment module 114 to exit the selection mode, e.g., to return to a state in the display environment as was achieved before the selection in FIG. 2.
In another example, snap 508 regions may be defined to “dock” a display of an application along an edge of the display environment. As described and shown in relation to FIG. 1, for instance, an immersive environment may support a concurrent display of data 116, 118 from applications that is separated by a gutter 120 that is configured to adjust an amount of display area of the display device 112 that is consumed by the respective applications. In a further example, a switch region may be defined, such as to move an application from a snap 508 region in a selected state to the switch 510 region. A variety of other examples are also contemplated. The close techniques may also be implemented to support these different views of the applications, such as for a docked application as described in relation to the following figure.
FIG. 6 depicts a system 600 in an example implementation in which an application closing technique is applied to a docked application. This system 600 is illustrated through use of first and second stages 602, 604. At the first stage 602, a user interface displayed by the display device 112 includes a first region and second region separated by a gutter 120. The first region in this example includes a primary display by the display device 112 and the second region in this example includes a “docked” application as described previously.
The first and second regions are illustrated as rendering data from a search service 606 (e.g., via a browser application) and a social network application 608, respectively. A finger of the user's hand 208 is illustrated as selecting the display of the social network application 608 from the docked region, such as by interacting with a top edge 210 of the display environment that coincides with the display of the social network application in the second region.
Responsive to subsequent movement of a point of contact away from the top edge 210 and toward the opposing bottom edge 212 of the display environment, the display characteristics of the application may change as shown in the second stage 604. Further, the display of the application in the first region (e.g., the search application 606) may be adjusted to consume a background “behind” the display of the social application, e.g., as an application in an immersive environment.
As before, the display of the application may be configured to follow subsequent movement of the finger of the user's hand 208. The user may then manipulate this display toward a close region 502 for output of an indication that a close operation is available, to initiate the close operation, and so on as described in relation to FIGS. 3-5. Other examples are also contemplated, at least one of which is described in relation to the following figure.
FIG. 7 depicts a system 700 in an example implementation in which the close techniques are used to close an application that is available via a back stack maintained by the operating system 108. This system 700 is shown through use of first and second stages 702, 704. As previously described, the operating system 108 may maintain an immersive environment in which a display of one or more applications may substantially consume a display environment of one or more display devices. However, applications may also “remain available” by the operating system 108 through use of a back stack in which execution of the application is suspended until it appears on the display device 112. A user, for instance, may make a swipe gesture through one or more fingers of the users hand, a “click and drag” gesture, and so on to replace one or more of the applications currently being displayed with an application from the back stack.
The close techniques described herein may also be used to close applications from the back stack. Further, these techniques may also be used without executing the application, thereby conserving resources of the computing device 102. For example, as shown at the first stage 702, a finger of the user's hand 208 is indicated as being placed proximal to a left edge of a display environment and moved away from the edge through use of an arrow 706.
In response, the environment module 114 may output a display of a “next available” application from the back stack, such as when the back stack is configured for navigation similar to a carousel. The next available application in this example is a display of the social network application 608 and is displayed as in a selection mode as previously described to follow subsequent movement of a point of selection. The selection mode may be used to support a variety of functionality as previously described, such as to specify “where” the display of the application is to be performed in the display environment, such as in the snap 508 or switch 510 regions described in relation to FIG. 5.
This selection may also be used to close the application and therefore remove it as available via the back stack. For example, subsequent movement of a point of selection may be made toward a bottom edge 212 of the display environment (as illustrated by an arrow in this example) to close the application as described in relation to FIGS. 3-5. In this way, a user may “clean up” a back stack to lessen a number of applications that are made available via scrolling. As before, this mode may also be exited through moving back to the discard 506 region and so on as previously described.
FIG. 8 depicts a system 800 in an example implementation in which a “close all” operation is supported by an operating system 108 of the computing device 102. This system 800 is also illustrated through use of first and second stages 802, 804. At the first stage 802, a cursor is shown as selecting a point near an edge of a display environment and including subsequent movement away from that edge, as shown through use of an arrow 806. Responsive to this movement, a menu 808 is output by the environment module 114.
The menu 808 in this example includes representations of commands that may be initiated from both the applications 110 and/or the environments supported by the environment module 114. Examples of such commands are illustrated as including “search,” “share,” “start,” “connect,” and “settings.”
In this example, selection of the “settings” command at the first stage 802 causes output of another command that is selected to close all applications 810 as shown in the second stage 804. Selection of the close all applications 810 command may cause removal of an ability to execute each of the applications 110 by the computing device 102 without re-launching (as opposed to restoring) the applications 110. For example, the application may be removed from both a current display as well as a back stack supported by the operating system 108. A variety of other examples are also contemplated.
Example Procedures
The following discussion describes application closing techniques that may be implemented utilizing the previously described systems and devices. Aspects of each of the procedures may be implemented in hardware, firmware, or software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment 100 of FIG. 1 and systems 200-800 of FIGS. 2-8, respectively.
FIG. 9 depicts a procedure 900 in an example implementation in which one or more inputs are recognized as indicating initiation of a closing operation. A computing device recognizes an input as involving selection of an application displayed in a display environment by the computing device and subsequent movement of a point of the selection toward an edge of the display environment (block 902). The input, for instance, may be received via a cursor control device, through touchscreen functionality of a display device 112, detected using one or more cameras such as through a natural user interface, and so on. As previously described, although movement toward a bottom edge 212 was discussed, a variety of different edges of a display environment may be utilized. Additionally, the display environment may be supported by one or more display devices and thus is not limited to a physical edge nor a single display device.
Responsive to the recognizing of the input, the selected application is closed by the computing device (block 904). The operating system 108, for instance, may remove the application 110 from volatile memory, e.g., RAM, removed from storage as part of state maintained by the operating system 108 such that the application 110 is not available without “re-launching” the application 110 (e.g., as part of a back stack), and so forth.
FIG. 10 depicts a procedure 1000 in an example implementation in which display characteristics are changed to indicate selection and availability of a close operation to close an application. A computing device recognizes a selection input as initiating selection of an application displayed in a display environment of the computing device, the selection made at a portion of the application displayed proximal to at a first edge of the display environment (block 1002). The selection, for instance, may involve contact detected using touchscreen functionality of the display device 112 (e.g., a finger or stylus press), a click and hold made by a cursor control device, and so forth.
Responsive to the recognition of the selection input, a display characteristic of the application is changed to indicate the selection of the application (block 1004). The environment module 114, for instance, may change a size, transparency, and so on of the display of the application in the user interface.
The display of the application having the changed display characteristic is also caused to follow subsequent movement of the selection as indicated by one or more inputs (block 1006). Continuing with the previous example, the subsequent movement may follow subsequent movement defined by a cursor control device while “clicked,” subsequent movement of a contact as continued across a display device 112 using touchscreen functionality, and so forth.
A closing input is recognized through the subsequent movement as crossing a threshold defined in relation to a second edge of the display environment (block 1008). The closing input, for instance, may be detected by crossing a static threshold (e.g., a threshold defined at a particular location in a display environment for a touch contact), a dynamic threshold (e.g., defined as an amount of movement in relation to a display environment, such as for a cursor control device), and so forth.
Responsive to the recognizing of the closing input, a further change in one or more display characteristics of the application is caused to indicate availability to initiate closing of the application (block 1010). The environment module 114, for instance, may cause the change (e.g., a further reduction in size, increase in transparency, and so forth) to indicate when the close operation is available. A user may then lift a button of a cursor control device, remove a finger of the user's hand 208 from contacted the display device 112, and so on to initiate the operation, further discussion of which may be found in relation to the following figure.
FIG. 11 depicts a procedure 1100 in an example implementation in which a mode is entered that is usable to close one or more applications. A computing device enters a mode to close an application responsive to recognition of one or more inputs to select an application displayed in a display environment by the computing device, the mode operable to change a display characteristic of the application and cause the display of the application to follow subsequent movement described by an input device used to select the application as defined by the inputs (block 1102). A user, for instance, may enter the mode by contacting a display of an application on a display device 112 near a top edge 210 of the device, although other edges and locations in the display environment are also contemplated. As previously described, a cursor control device may also be used.
The computing device exits the mode to close the application responsive to detection that the one or more inputs have ceased (block 1104). The user as shown in FIG. 4, for instance, may remove a finger of the user's hand from the display device 112 while the display of the application 206 is positioned within the close region 502 of the display environment, thereby causing initiation of the close operation and exit of the mode. Other examples are also contemplated, such as through positioned of a point of the selection in the discard 506 region, snap 508 regions, switch 510 regions, and so on.
Example System and Device
FIG. 12 illustrates an example system 1200 that includes the computing device 102 as described with reference to FIG. 1. The example system 1200 enables ubiquitous environments for a seamless user experience when running applications on a personal computer (PC), a television device, and/or a mobile device. Services and applications run substantially similar in all three environments for a common user experience when transitioning from one device to the next while utilizing an application, playing a video game, watching a video, and so on.
In the example system 1200, multiple devices are interconnected through a central computing device. The central computing device may be local to the multiple devices or may be located remotely from the multiple devices. In one embodiment, the central computing device may be a cloud of one or more server computers that are connected to the multiple devices through a network, the Internet, or other data communication link. In one embodiment, this interconnection architecture enables functionality to be delivered across multiple devices to provide a common and seamless experience to a user of the multiple devices. Each of the multiple devices may have different physical requirements and capabilities, and the central computing device uses a platform to enable the delivery of an experience to the device that is both tailored to the device and yet common to all devices. In one embodiment, a class of target devices is created and experiences are tailored to the generic class of devices. A class of devices may be defined by physical features, types of usage, or other common characteristics of the devices.
In various implementations, the computing device 102 may assume a variety of different configurations, such as for computer 1202, mobile 1204, and television 1206 uses. Each of these configurations includes devices that may have generally different constructs and capabilities, and thus the computing device 102 may be configured according to one or more of the different device classes. For instance, the computing device 102 may be implemented as the computer 1202 class of a device that includes a personal computer, desktop computer, a multi-screen computer, laptop computer, netbook, and so on.
The computing device 102 may also be implemented as the mobile 1204 class of device that includes mobile devices, such as a mobile phone, portable music player, portable gaming device, a tablet computer, a multi-screen computer, and so on. The computing device 102 may also be implemented as the television 1206 class of device that includes devices having or connected to generally larger screens in casual viewing environments. These devices include televisions, set-top boxes, gaming consoles, and so on. The techniques described herein may be supported by these various configurations of the computing device 102 and are not limited to the specific examples the techniques described herein.
The cloud 1208 includes and/or is representative of a platform 1210 for content services 1212. The platform 1210 abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud 1208. The content services 1212 may include applications and/or data that can be utilized while computer processing is executed on servers that are remote from the computing device 102. Content services 1212 can be provided as a service over the Internet and/or through a subscriber network, such as a cellular or Wi-Fi network.
The platform 1210 may abstract resources and functions to connect the computing device 102 with other computing devices. The platform 1210 may also serve to abstract scaling of resources to provide a corresponding level of scale to encountered demand for the content services 1212 that are implemented via the platform 1210. Accordingly, in an interconnected device embodiment, implementation of functionality of the functionality described herein may be distributed throughout the system 1200. For example, the functionality may be implemented in part on the computing device 102 as well as via the platform 1210 that abstracts the functionality of the cloud 1208.
FIG. 13 illustrates various components of an example device 1300 that can be implemented as any type of computing device as described with reference to FIGS. 1, 2, and 12 to implement embodiments of the techniques described herein. Device 1300 includes communication devices 1302 that enable wired and/or wireless communication of device data 1304 (e.g., received data, data that is being received, data scheduled for broadcast, data packets of the data, etc.). The device data 1304 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 1300 can include any type of audio, video, and/or image data. Device 1300 includes one or more data inputs 1306 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 1300 also includes communication interfaces 1308 that 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 1308 provide a connection and/or communication links between device 1300 and a communication network by which other electronic, computing, and communication devices communicate data with device 1300.
Device 1300 includes one or more processors 1310 (e.g., any of microprocessors, controllers, and the like) which process various computer-executable instructions to control the operation of device 1300 and to implement embodiments of the techniques described herein. Alternatively or in addition, device 1300 can be implemented 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 1312. Although not shown, device 1300 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 1300 also includes computer-readable media 1314, such as one or more memory components, 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 1300 can also include a mass storage media device 1316.
Computer-readable media 1314 provides data storage mechanisms to store the device data 1304, as well as various device applications 1318 and any other types of information and/or data related to operational aspects of device 1300. For example, an operating system 1320 can be maintained as a computer application with the computer-readable media 1314 and executed on processors 1310. The device applications 1318 can include a device manager (e.g., 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, etc.). The device applications 1318 also include any system components or modules to implement embodiments of the techniques described herein. In this example, the device applications 1318 include an interface application 1322 and an input/output module 1324 that are shown as software modules and/or computer applications. The input/output module 1324 is representative of software that is used to provide an interface with a device configured to capture inputs, such as a touchscreen, track pad, camera, microphone, and so on. Alternatively or in addition, the interface application 1322 and the input/output module 1324 can be implemented as hardware, software, firmware, or any combination thereof. Additionally, the input/output module 1324 may be configured to support multiple input devices, such as separate devices to capture visual and audio inputs, respectively.
Device 1300 also includes an audio and/or video input-output system 1326 that provides audio data to an audio system 1328 and/or provides video data to a display system 1330. The audio system 1328 and/or the display system 1330 can include any devices that process, display, and/or otherwise render audio, video, and image data. Video signals and audio signals can be communicated from device 1300 to an audio device and/or to a display device via an RF (radio frequency) link, S-video link, composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link. In an embodiment, the audio system 1328 and/or the display system 1330 are implemented as external components to device 1300. Alternatively, the audio system 1328 and/or the display system 1330 are implemented as integrated components of example device 1300.
CONCLUSION
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed invention.

## Claims

1. A method implemented by a computing device, the method comprising:
recognizing an input as involving selection of a portion of an application displayed in a display environment by the computing device and subsequent movement of a point of the selection toward a first edge of the display environment, the selected portion of the application positioned at a second edge of the display environment that is opposite the first edge, the display environment including a plurality of regions associated with different actions of the application, at least one of the regions defined by the first edge of the display device and involving closing of the application and defined by a dynamic threshold that is determined from the subsequent movement of the point of the selection toward the first edge of the display environment, the dynamic threshold defined as a percentage of the subsequent movement between the second and first edges of the display environment, at least another region other than the at least one of the regions configured such that moving the selected application into the another region causes the selection of the application not to be recognized; and
responsive to the recognizing of the input, closing the selected application.

2. A method as described in claim 1, wherein the input is recognized from one or more inputs received via touchscreen functionality or a cursor control device of the computing device.

3. A method as described in claim 1, wherein the closing includes sending one or more events to the application that indicate that the application is to be closed.

4. A method as described in claim 1, further comprising responsive to recognition that a portion of the application has been selected, changing a display characteristic of the selected application to indicate that the application has been selected.

5. A method as described in claim 4, wherein the changing of the display characteristic includes changing an amount of area of the display environment used to display the application or changing a transparency of the application as displayed on the display environment.

6. A method as described in claim 1, wherein the subsequent movement is recognized as passing a threshold.

7. A method as described in claim 6, further comprising responsive to recognition that the movement has passed the threshold, changing a display characteristic of the selected application to indicate that the closing of the application is available upon ceasing of the input.

8. A method as described in claim 6, wherein the threshold is defined as occurring at a set physical distance from the edge of the display environment.

9. A method as described in claim 6, wherein the threshold is defined as a defined proportion of an available display area of the display environment from the edge.

10. A method as described in claim 6, further comprising keeping the application open responsive to recognition that the input describes movement that has exited a region defined by the threshold.

11. A method as described in claim 1, wherein the recognizing includes recognizing the subsequent movement as occurring at a velocity that is indicative of a user's desire to close the application.

12. A method as described in claim 1, wherein the application is maintained in a back stack of the computing device and the closing of the application is performed without actively executing the application.

13. A method as described in claim 1, wherein the closing includes display of an animation that is indicative that the closing of the application is to be performed.

14. A method as described in claim 1, wherein the selection and the subsequent movement involve a gesture that includes detection of contact, using touchscreen functionality of the display environment, of a portion of the application displayed by the display environment and the subsequent movement involving continuation of the contact toward the first edge and the input further describes cessation of the contact, thereby completing the gesture.

15. A method implemented by a computing device, the method comprising:
recognizing a selection input as initiating selection of an application displayed in a display environment of the computing device, the selection made at a portion of the application displayed proximal to a first edge of the display environment, the display environment including a plurality of regions associated with different actions of the application, at least one of the regions defined by a second edge of the display device and involving closing of the application;
responsive to the recognizing of the selection input, changing a display characteristic of the application to indicate the selection of the application;
causing the display of the application having the changed display characteristic to follow subsequent movement of the selection, the at least one of the regions of the display environment defined by a dynamic threshold that is determined from the subsequent movement of the selection, the dynamic threshold defined as a percentage of the subsequent movement between the first and second edges of the display environment;
recognizing a closing input from the subsequent movement as crossing a threshold defined in relation to the second edge of the display environment; and
responsive to the recognizing of the closing input, causing a further change in one or more display characteristics of the application to indicate availability to initiate closing of the applications.

16. A method as described in claim 15, wherein the first and second edges of the display environment define opposing sides of the display environment.

17. A method implemented by a computing device, the method comprising:
entering a mode to close an application responsive to recognition of one or more inputs to select an application displayed in a display environment by the computing device, the selection made at a portion of the application displayed proximal to a first edge of the display environment and selection of the application causing a background of the display environment to be exposed that was not exposed prior to the selection of the application, the mode operable to change a display characteristic of the application and cause the display of the application to follow subsequent movement described by an input device used to select the application as defined by the inputs, the subsequent movement toward a second edge of the display environment that is opposite the first edge, the display environment including a plurality of regions associated with different actions of the application, at least one of the regions defined by the second edge of the display device and involving closing of the application, the at least one of the regions further defined by a dynamic threshold that is determined from the subsequent movement, the dynamic threshold defined as a percentage of the subsequent movement between the first and second edges of the display environment, at least another region other than the at least one of the regions configured such that moving the selected application into the another region causes the selection of the application not to be recognized; and
exiting the mode to close the application responsive to detection that the one or more inputs have ceased.

18. A method as described in claim 17, wherein the input device is a cursor control device.

19. A method as described in claim 17, wherein:
the input device involves touchscreen functionality of one or more display devices used to implemented the display environment;
the entering of the mode is performed responsive to detection of contact by the touchscreen functionality; and
the exiting of the mode is performed responsive to removal of the contact as detected by the touchscreen functionality.