Fast switching is the process by which applications running on an operating system may be quickly navigated to by a user. For example, on a typical computer, a user may have open multiple applications, such as, a word processing application, a spreadsheet application, and a multi-media application. To navigate between the different applications operating on the computer, a user would have to use his or her mouse to select which application the user desires to use or access. Using a fast-switch list, by contrast, would allow the user to enter a keystroke on a keyboard of the computer that would quickly navigate among the various open applications. A fast-switch list, however, only includes those applications that are opened or operating directly on the local computer or operating system.
In general, one embodiment the subject matter described herein may be a method that includes the action of determining that a browser application is operating on a computing device, the browser application including one or more tabs wherein one of the tabs is associated with a web application. The method may further include the actions of determining that the computing device includes a fast-switch list including one or more applications operating on the computing device, and adding the web application to the fast-switch list.
Other embodiments may include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices. Further embodiments, features, and advantages, as well as the structure and operation of the various embodiments are described in detail below with reference to accompanying drawings.
Embodiments are described with reference to the accompanying drawings. In the drawings, like reference numbers may indicate identical or functionally similar elements. The drawing in which an element first appears is generally indicated by the left-most digit in the corresponding reference number.
Embodiments are described herein with reference to illustrations for particular applications. It should be understood that the embodiments are not intended to be limiting. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the embodiments would be of significant utility.
Fast-switching is a process that allows a user or operator of a computing device to quickly navigate between applications or programs operating on the computing device. For example, a user may have open on a computing device a word processing program and a web browser with tabs that are opened to several different websites. Using fast-switching, a user may be able to quickly navigate between the word processing program and the web browser. Expanding the capabilities of fast-switching to the tabs of the web browser, may allow a user to not only navigate between the word processing program and the web browser, but also one or more of the individual tabs or websites opened within the web browser.
Computing device 102 may include any electronic computing device. For example, computing device 102 may be a computer, laptop, desktop, mobile phone, monitor, television, tablet computer, or other computing device. Computing device 102 may include one or more processors.
Operating system 104 may include a set of one or more programs that manage computer hardware resources and provide common services to applications 110 and 112. For example, operating system 104 may provide input, output and memory allocation services for applications 110, 112 operating on operating system 104. In an embodiment, operating system 104 may perform time-share operations and scheduling operations that allow applications 110, 112 to share resources and/or allow a user to open, operate and activate instances of multiple applications simultaneously.
Computing device 102 may include an input controller 114 that receives one or more keystrokes 116 from a user. Input controller 114 may include any input or input/output controller. Input controller 114 may detect input from a user, such a keystroke 116 from a keyboard or other input device connected to computing device 102. For example, computing device may be wirelessly coupled to a keyboard or other input device. When the user enters a keystroke 116 on the keyboard, input controller 114 may detect the input and provide an interrupt to operating system 104 to register or handle the keystroke 116.
Keystroke 116 may be any input provided to computing device 102 through any input device. For example, as just referenced, keystroke 116 may be a pressing of one or more keys on a keyboard connected to computing device 102. In other embodiments, keystroke 116 may include a movement of a mouse or a finger swipe on a touchscreen of computing device 102. As used herein, keystroke 116 is input as received from an input device that activates a fast-switch list 108. For example, keystroke 116 may cause operating system 104 to navigate or toggle between the applications included on fast-switch list 108.
Applications 110 may include any applications or programs executable on operating system 104. For example, applications 110 may include word processing, spreadsheet, drawing, database, games or other applications. In an embodiment, applications 110 may be stored or operated locally on computing device 102. A user may then open or activate an application 110 that may cause operating system 104 to activate an instance of the application 110 on operating system 104. List processor 106 may then add an identifier 122 corresponding to the activated or opened application 110 to fast-switch list 108.
Identifier 122 may be a reference to an opened application 110, 112 that is included on fast-switch list 108. Identifier 122, as described in further detail below, may be an icon that is visible to users. In an embodiment, a user may activate and a view fast-switch list 108, that may include identifiers 122 corresponding to the applications 110, 112 included in fast-switch list 108. In another embodiment, identifiers 122 may only be internal references to applications 110, 112 included on fast-switch list 108 that may not be visible to a user. When keystroke 116 is detected, list processor 106 may use identifiers 122 to toggle or navigate between the open applications 110, 112 as included on fast-switch list 108.
List processor 106 may be a component, application or process operating on or in conjunction with operating system 104 that manages fast-switch list 108. Fast-switch list 108 may be a utility or feature of operating system 104 that allows a user to quickly navigate amongst the applications of fast-switch list 108 by entering keystroke 116. For example, a user may be typing a report on a word processing application (e.g., application 110A) and may simultaneously have open a spreadsheet application (e.g., application 110B) running on a background process of operating system 104 with sales figures and charts. The user may then enter keystroke 116 to switch between the currently active word processing application 110B, and the spreadsheet application 110B. List processor 106 may then to activate the spreadsheet application 110B on operating system 104, and application 110A may begin operating on a background process of operating system 104. List processor 106 may allow a user to toggle or navigate between opened applications operating on operating system 104 by entering keystroke 116.
Browser application 112 may be an application or program similar to that described above with reference to application 110. Application 112 may include an additional feature allowing multiple windows or tabs 118 for accessing to various documents or sub-applications within application 112. Tab 118 may be a navigational widget that allows a single instance of browser application 112 to have opened within it multiple documents.
In an embodiment, browser application 112 may be a web browser used to access the Internet or other networks, which may include multiple tabs 118A-C. Each tab 118 may be directed to a webpage or other web application 120. Web application 120 may be any webpage, website, or other document or set of documents that may be opened within or accessible via browser application 112. Though browser application 112 is primarily described herein as being a web browser application, one skilled in the art will recognize other embodiments may include any application or program that allows a user to access multiple documents within a since instance of the browser application 112. For example, in another embodiment browser application 112 may be a word processing application, with multiple windows or tabs 118 corresponding to different word processing documents (e.g., web applications 120).
In contrast to conventional fast-switch lists, list processor 106 may add identifiers 122 or instances of tabs 118A-C corresponding to web applications 120 to fast-switch list 108. For example, if a user has activated instances of application 110A, application 110B and browser application 112 with tabs 118A-C, a conventional fast-switch list will only include instances of application 110A, application 110B and browser application 112. List processor 106 however may also include identifiers 122 for one or more of tabs 118A-C. Application 110C, as shown, may be an application that exists on operating system 104, which a user has not activated or opened and thus is not included on a conventional fast-switch list or fast-switch list 108.
In the example of
Though fast-switch list 108 only include two identifiers 122C and 122D corresponding to browser application 112 and tab 118A of browser application 112, other embodiments may include identifiers for each of tabs 118A-C. In another embodiment, fast-switch list 108 may include multiple identifiers 122 from multiple different types of browser applications 112. For example, fast-switch list 108 may include independent identifiers 122 for various documents opened in a word processing application, as well as independent identifiers 122 for various websites opened in a web browser.
List processor 106 may determine which tabs 118A-C to include on fast-switch list 108 based on any number of factors. In an embodiment, list processor 106 may add a tab 118 to fast-switch list 108 based upon a selection by a user. For example, a user may enter a particular keystroke 116 or select a menu item from browser application 112 requesting to add web application 120 corresponding to tab 118A to fast-switch list 108. As another example, list processor 106 may automatically add each browser tab 118 to fast-switch list 108.
In another embodiment, list processor 106 may add web application 120 to fast-switch list 108 based upon a frequency of use or operation of web application 120. For example, if a user uses or has open web application 120 for more than a specified time interval, or if a user activates browser application 112 and selects tab 118A more than specified number of times, then list processor 106 may determine that web application 120 is frequently used and may automatically (e.g., without a specific user request) add web application 120 from tab 118A to fast-switch list 108.
In another embodiment, list processor 106 may add web application 120 to fast-switch list 108 based upon a user selection of a pre-existing menu item from browser application 112. For example, browser application 112 may be a web browser that allows a user to pin particular tabs to browser application 112.
Identifier 122 may be any visual identifier associated with or corresponding to a web application 120. For example, the publisher of a website may select a particular image and/or text as identifier 122 for the website. Then, for example, the selected identifier 122 may be used as part of the pin-tab feature of browser application 112 when a tab 118 that has the web application 120 (e.g., website) opened is pinned. As referenced above, and as shown in
As shown in
In one embodiment, list processor 106 may add web application 120 corresponding to a selected pinned tab 118C to fast-switch list 108 upon a determination that the tab 118C has been pinned or otherwise upon a request to pin tab 118C. List processor 106 may interpret a pin-request as being an indication that the user is interested in or likely to access the particular web application 120 frequently, and may automatically (e.g., without an additional or subsequent request from the user) add the web application 120 to fast-switch list 108.
In an embodiment, fast-switch list 108 may be visible to a user, and may allow a user to select from fast-switch list 108 which application 110, 112 to activate based on identifiers 122 corresponding to the included applications 110, 112. For example, as shown, identifier 122A may correspond to application 110A, identifier 122B may correspond to application 110B, identifier 122C may correspond to browser application 112A, and identifier 122D may correspond to browser application 112B or more particular tab 118C. Fast-switch list 108 may also include an activation box 124 indicating which application 110, 112 is currently active on operating system 104.
Activation box 124 may be a highlight, box, or other visual indication or visual indicator that indicates which application 110, 112 is currently active on operating system 104. In an embodiment, keystroke 116 may (e.g., such as a mouse movement) allow a user to use activation box 112 to select the identifier 122 corresponding to the application 110, 112 user wants to activate. In the example shown, the currently active application is web application 120A. A user however may also select amongst any of the opened word processing application 110A, the calendar application 110B or the browser application 112A as indicated by the corresponding identifiers 122A, 122B and 122C.
Returning to
List processor 106 may also remove identifiers 122 from fast-switch list 108 when the corresponding applications 110, 112 are closed. For example, if tab 118 is closed in browser application 112, list processor 106 may remove identifier 122D from fast-switch list 108. If however, browser application 112 (including tabs 118A-C) is closed, list processor 106 may remove both identifier 112C and 122D from fast-switch list 108. If later, browser application 112 is restarted and web application 120 is opened in a new tab 118, list processor may then include identifiers 122C and 122D corresponding to browser application 112 and the tab 118 with web application 120, respectively.
In other embodiments, the automatic add feature of list processor 106 as pertaining to automatically adding previously added web applications 120 to fast-switch list 108 may be disabled. List processor 106 may then, for example, wait for a request from a user (or other indication as described above) to add a web application 120 to fast-switch list 108.
At stage 210, it is determined that a browser application is operating on a computing device, the browser application including a tab associated with a web application. For example, list processor 106 may determine when an instance of browser application 112 is opened and operating on operating system 104. Browser application 112 may then allow a user to open one or more tabs 118 for viewing or accessing different web applications 120 or other documents.
At stage 220, it is determined that the computing device includes a fast-switch list including one or more applications operating on the computing device. For example, operating system 104 may determine that computing device 102 includes fast-switch list 108. List processor 106 may manage fast-switch list 108 and may add applications 110, 112 to fast-switch list 108 when instances of the applications 110, 112 are initiated on operating system 104. List processor 106 may add various identifiers 122 to fast-switch list 108 corresponding to opened applications 110, 112.
At stage 230, the web application is added to the fast-switch list. For example, list processor 106 may receive an indication (such as a pin-request) from a user to add a particular web application 120 as opened within a tab 118 of browser application 112 to fast-switch list 108. List processor 106 may then add an identifier 122 corresponding to web application 120 (as opened within a tab 118 of browser application 112) to fast-switch list 108. Fast-switch list 108 may then include two or more identifiers 122 corresponding to a single browser application 112, by which the individually selected web application 120 may is independently selectable from fast-switch list 108.
At stage 310, a request to pin a tab of a plurality of tabs of a browser application to the browser application is received. Browser application 112 may include a pin feature that arranges pinned tabs 118 within a particular location on browser application 112, as shown in
At stage 320, it is determined that a web application is open in the tab associated with the pin request. For example, a user may enter a website or other network address into an address bar corresponding to a tab 118 of browser interface 112. A request to pin the tab 118 may be received by browser application 112, which may proceed to pin the tab 118 as described above. Operating system 104 may also receive notice of the pin-request and provide the pin-request to list processor 106. List processor 106 may then determine which web application 120 is opened within tab 118C corresponding to the pin-request.
At stage 330, it is determined that the browser application is included on a fast-switch list of an operating system of the computing device. For example, list processor 106 may determine that browser application 112 is included on fast-switch list 108 of operating system 104. List processor 106 may add applications 110, including browser application 112, to fast-switch list 108 upon an instantiation of an instance of the application 110, 112 on operating system 104.
At stage 340, the web application is added independently of the browser application to the fast-switch list. For example, list processor 106 may add a separate identifier 122D for web application 120 of browser application 112 to fast-switch list 108. This addition may allow the web application 120 to be selected independently from the browser application 112 or other applications 110A, 110B for which instances are operating locally on operating system 104.
If programmable logic is used, such logic may execute on a commercially available processing platform or a special purpose device. One of ordinary skill in the art may appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device.
For instance, a computing device having at least one processor device and a memory may be used to implement the above-described embodiments. A processor device may be a single processor, a plurality of processors, or combinations thereof. Processor devices may have one or more processor “cores.”
Various embodiments are described in terms of this example computer system 400. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the embodiments using other computer systems and/or computer architectures. Although operations may be described as a sequential process, some of the operations may in fact be performed in parallel, concurrently, and/or in a distributed environment, and with program code stored locally or remotely for access by single or multi-processor machines. In addition, in some embodiments the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.
Processor device 404 may be a special purpose or a general-purpose processor device. As will be appreciated by persons skilled in the relevant art, processor device 404 may also be a single processor in a multi-core/multiprocessor system, such system operating alone, or in a cluster of computing devices operating in a cluster or server farm. Processor device 404 is connected to a communication infrastructure 406, for example, a bus, message queue, network, or multi-core message-passing scheme.
Computer system 400 also includes a main memory 408, for example, random access memory (RAM), and may also include a secondary memory 410. Secondary memory 410 may include, for example, a hard disk drive 412, removable storage drive 414. Removable storage drive 414 may comprise a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, or the like. The removable storage drive 414 reads from and/or writes to a removable storage unit 418 in a well-known manner. Removable storage unit 418 may comprise a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 414. As will be appreciated by persons skilled in the relevant art, removable storage unit 418 includes a computer usable storage medium having stored therein computer software and/or data.
In alternative embodiments, secondary memory 410 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 400. Such means may include, for example, a removable storage unit 422 and an interface 420. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 422 and interfaces 420 which allow software and data to be transferred from the removable storage unit 422 to computer system 400.
Computer system 400 may also include a communications interface 424. Communications interface 424 allows software and data to be transferred between computer system 400 and external devices. Communications interface 424 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like.
In this document, the terms “computer program medium” and “computer usable medium” are used to generally refer to media such as removable storage unit 418, removable storage unit 422, and a hard disk installed in hard disk drive 412. Computer program medium and computer usable medium may also refer to memories, such as main memory 408 and secondary memory 410, which may be memory semiconductors (e.g. DRAMs, etc.).
Computer programs (also called computer control logic) are stored in main memory 408 and/or secondary memory 410. Computer programs may also be received via communications interface 424. Such computer programs, when executed, enable computer system 400 to implement the present embodiments as discussed herein. In particular, the computer programs, when executed, enable processor device 404 to implement the processes as illustrated by the flowcharts of
Embodiments may also be directed to computer program products comprising software stored on any computer useable medium. Such software, when executed in one or more data processing device, causes a data processing device(s) to operate as described herein. Embodiments may employ any computer useable or readable medium. Examples of computer useable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory), secondary storage devices (e.g., hard drives, floppy disks, CD ROMS. ZIP disks, tapes, magnetic storage devices, and optical storage devices, MEMS, nanotechnological storage device, etc.).
The embodiments have been described above with the aid of functional building blocks illustrating the embodiment of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
The foregoing description of the specific embodiments allows others, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of what has been described herein. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
The breadth and scope of the embodiments should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
20010035882 | Stoakley | Nov 2001 | A1 |
20060230356 | Sauve | Oct 2006 | A1 |
20080005686 | Singh | Jan 2008 | A1 |
20080109753 | Karstens | May 2008 | A1 |
20110022971 | Epling et al. | Jan 2011 | A1 |
20110066977 | DeLuca et al. | Mar 2011 | A1 |
20110145744 | Haynes | Jun 2011 | A1 |
20110252381 | Chaudhri | Oct 2011 | A1 |
20110307810 | Hilerio | Dec 2011 | A1 |
20110307812 | Hilerio et al. | Dec 2011 | A1 |
20110314389 | Meredith | Dec 2011 | A1 |
20120066630 | Kim et al. | Mar 2012 | A1 |
20120174020 | Bell et al. | Jul 2012 | A1 |
20130031490 | Joo et al. | Jan 2013 | A1 |
20130111415 | Newman et al. | May 2013 | A1 |
20130263021 | Dunn | Oct 2013 | A1 |