Window switching interface

Methods for switching between tabbed windows are provided. In one aspect, a method includes receiving an input of a touch gesture includes a dragging motion via a touch interface of a device, and determining whether the touch gesture begins within a predetermined distance from a first edge of the touch interface and proceeds towards a second edge of the touch interface. The method also includes providing at least one tabbed window in an application for display from a perspective vertically above the at least one tabbed window in response to determining that the touch gesture begins within the predetermined distance from the first edge and proceeds towards the second edge. Systems and machine-readable media are also provided.

BACKGROUND

The present disclosure generally relates to the transmission of data over a network, and more particularly to the use of a computing device to display data communicated over a network.

2. Description of the Related Art

Applications such as web browsers commonly provide multiple documents, such as web pages, for display in the application. Each document or web page is commonly displayed in a respective browsing window (“tabbed window” or “tab”) of the application. In order for a user viewing a current tab to switch to another tab using a touch interface, such as a touchscreen tablet, the user commonly performs multiple steps that can be cumbersome. For instance, the user when viewing the current tab first identifies a destination tab to switch to by referring to a limited identifier space for the destination tab displaying an icon and a small portion of title text, and then the user moves their hand from a resting position (e.g., holding a side of the tablet) to pressing the limited identifier space of the destination tab. The destination tab is then displayed by the application, and the user confirms that the destination tab is the tab the user intended to select. If the destination tab is the correct intended tab, the user returns their hand to the resting position, otherwise the user repeats this process to select another tab.

SUMMARY

According to one embodiment of the present disclosure, a computer-implemented method for switching between tabbed windows is provided. The method includes receiving an input of a touch gesture includes a dragging motion via a touch interface of a device, and determining whether the touch gesture begins within a predetermined distance from a first edge of the touch interface and proceeds towards a second edge of the touch interface. The method also includes providing at least one tabbed window in an application for display from a perspective vertically above the at least one tabbed window in response to determining that the touch gesture begins within the predetermined distance from the first edge and proceeds towards the second edge.

According to another embodiment of the present disclosure, a system for switching between tabbed windows is provided. The system includes a memory that includes instructions, and a processor. The processor is configured to execute the instructions to receive an input of a touch gesture includes a dragging motion via a touch interface of a device, and determine whether the touch gesture begins within a predetermined distance from a first edge of the touch interface and proceeds towards a second edge of the touch interface. The processor is also configured to execute the instructions to provide a plurality of tabbed windows in an application for display from a perspective vertically above the plurality of tabbed windows in response to determining that the touch gesture begins within the predetermined distance from the first edge and proceeds towards the second edge. Each of the plurality of tabbed windows is configured to be provided for display at varying degrees with respect to the perspective vertically above the plurality of tabbed windows

According to a further embodiment of the present disclosure, a machine-readable storage medium that includes machine-readable instructions for causing a processor to execute a method for switching between tabbed windows is provided. The method includes receiving an input of a touch gesture includes a dragging motion via a touch interface of a device when at least one tabbed window from among a plurality of tabbed windows is provided for display from a perspective in front of the at least one tabbed window, and determining whether the touch gesture begins within a predetermined distance from a first edge of the touch interface and proceeds towards a second edge of the touch interface. The method also includes providing the plurality of tabbed windows in a web browser for display from a perspective vertically above the plurality of tabbed windows, each of the plurality of tabbed windows being provided for display at varying degrees with respect to the perspective vertically above the plurality of tabbed windows in response to determining that the touch gesture begins within the predetermined distance from the first edge and proceeds towards the second edge. The touch interface includes at least one of a touchscreen or a touchpad.

DETAILED DESCRIPTION

The disclosed system provides an interface for entering a tab switching mode in an application, such as a web browser, while the user maintains their hand in the resting position. Specifically, the user having their hand in the resting position holding the tablet may swipe their thumb or other finger from off of an edge (e.g., a lateral or vertical edge) of the touchscreen of the tablet (or touchpad of a device) onto the edge of the touchscreen in order to enter the tab switching mode. In certain aspects, if the swipe does not exceed a certain threshold distance, the tab switching mode is not entered.

The tab switching mode provides each open tab for display in a vertical (e.g., file cabinet or rolodex) arrangement such that the user can view each of the tabs and their related web page content from a perspective vertically above the tabs. In certain aspects, the tab that was being displayed in the web browser prior to entering the tab switching mode appears most prominent (e.g., having an increased distance from neighboring tabs) in the vertical arrangement. In order to make another tab more prominent, the user may use a multi-touch gesture on the other tab (e.g., a pinch or stretch input) to increase the visibility of the other tab (e.g., by creating additional space between the other tab and its neighboring tabs). The user may also physically rotate the tablet to increase a visibility of a tab using feedback from an accelerometer in the tablet. In certain aspects, each of the tabs can be displayed at the same or varying degrees in the vertical arrangement. For example, a tab displayed at zero degrees would appear flat, and a tab displayed at 90 degrees may not be visible.

Each of the clients130is configured to download, install, and run a graphical user interface application for displaying documents in tabs as disclosed herein. The graphical user interface application can be, for example, a web browser, document viewer, or content editor, and the documents can be, for example, web pages, text documents, images, or other displayable content. The application is configured to run on clients130that are mobile or non-mobile. The clients110can be, for example, desktop computers, laptop computers, mobile devices (e.g., a smartphone, tablet computer, or PDA), set top boxes (e.g., for a television), video game consoles, or any other devices having appropriate processor, memory, touch input, and communications capabilities. In certain aspects, certain advantages of the application, such as less effort made by the user to switch tabs, are most salient on clients110that are touchscreen mobile devices (e.g., tablet computers or smartphones) or other touch-input devices that have limited display areas.

The application, once installed on a client110, is configured to load documents for display. The documents can be loaded, for example, from any one or multiple client servers130hosting the documents (e.g., web servers). The servers130can be any device having an appropriate processor, memory, and communications capability for hosting the data for installing the web browser and for hosting the documents. The network150can include, for example, any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, and the like. Further, the network150can include, but is not limited to, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, and the like.

The disclosed application, once downloaded from a server130and installed and executed on a client110, is configured to display tab indicators to represent opened document viewing windows, and enter a tab switching mode using a swiping touch input motion received from a user that starts near one edge of the touchscreen within the display of the web browser in the direction of another edge of the touchscreen. If the distance of the swiping touch input exceeds a threshold, then the tab switching mode is entered, otherwise the tab switching mode is not entered. Once the tab switching mode is entered, a user may exit the tab switching mode by selecting a tab to view in the application.

FIG. 2is a block diagram200illustrating an exemplary server130and client110in the architecture100ofFIG. 1according to certain aspects of the disclosure. The client110and the server130are connected over the network150via respective communications modules218and238. The communications modules218and238are configured to interface with the network150to send and receive information, such as data, requests, responses, and commands to other devices on the network. The communications modules218and238can be, for example, modems or Ethernet cards.

The client110includes a processor212, the communications module218, and a memory220. The memory220includes an application222and a client copies of documents224bto display in tabs in the application222using the touch interface device216of the client110. The touch interface device216is a combined input/output device216, such that it includes a display and touch input interface. In certain aspects, the touch interface device216provides touch sensitivity across the entire display of the client110. In certain aspects, the touch interface device216is limited to a touch-sensitive area that frame the display of the client110, such that the touch input features described herein are limited to the touch-sensitive area framing the display of the client110. The touch interface device216can be, for example, a touchscreen or a touchpad. Alternatively, the client110can include a separate input device, such as a keyboard or mouse, and an output device. The client copies of the documents224bcan be obtained over the network150from the processor236of the server130using server copies of the documents224astored in the memory232of the server130. Although the server copies of the documents224aare illustrated as being stored on one server130, they can also be stored on many different servers.

The processor212of the client110is configured to execute instructions, such as instructions physically coded into the processor212, instructions received from software in memory240, or a combination of both. For example, the processor212of the client110executes instructions from the application222to receive an input of a touch gesture that includes a dragging motion via the touch interface device216of the client110. The touch gesture can be received, for example, when at least one of the documents224bis provided for display in a tabbed window from a perspective in front of the tabbed window (e.g., in browsing mode).

The processor212is also configured to determine whether the touch gesture begins within a predetermined distance from a first edge of the touch interface device216and proceeds towards a second edge of the touch interface device216. The first and second edges can include any edge of the client110, such as neighboring edges or opposing edges. The touch gesture can be along a substantially straight path or along a curved or other shape path. In certain aspects, the touch gesture can proceed in any direction and the tab switching mode can be entered if the dragging motion of the touch gesture exceeds a predetermined length.

The dragging motion can begin in an input area defined in the application222displayed on the touch interface device216between the first edge of the touch interface device216, a predefined distance from the first edge of the touch interface device216, and the lateral height (e.g., the vertical length) of the touch interface device216(within the application222). The input can be configured to be received at or near any edge of the touch interface device216. When, for example, the input is configured to be at a lateral edge of the touch interface device216, then the input dragging motion can begin by moving from off of one edge of the touch interface device216(e.g., on a frame that borders the touch interface device216) back onto the touch interface device216in the direction of another edge of the touch interface device216.

A touch gesture received within the input area within the application222can be used by the processor212for entering a tab switching mode in the application222to switch between a display of tabbed windows of client copies of documents224on the client110. A touch gesture received outside the input area within the application222can be used by the processor212for interacting with the currently displayed open document224bin the application222. For example, during the dragging motion of the touch gesture, one of the several open documents224bto which the application222can be switched to is provided for display. The display can be a screenshot (e.g., in JPEG format) of the opened document224bthat was captured the last time the opened document224bwas displayed in the web browser222, and the captured screenshot for each opened document224bcan be displayed upon entering the tab switching mode.

The processor212is further configured to provide at least one tabbed window in an application for display from a perspective vertically above the tabbed window (e.g., in the tab switching mode) in response to determining that the touch gesture that includes the dragging motion begins within the predetermined distance from the first edge and proceeds towards the second edge. In certain aspects, the tab switching mode is entered if the dragging motion meets or exceeds a threshold length.

One or many tabbed windows for the open documents224bcan be displayed from a perspective vertically above the tabbed windows in the tab switching mode. In cases with multiple tabbed windows being displayed in tab switching mode, a distance between the initial tabbed window that was being viewed when entering tab switching mode and any other tabbed window (e.g., such as a tabbed window being displayed in front of the initial tabbed window) can by default be greater than a distance between each of the remaining tabbed windows being displayed.

In certain aspects, a visual transition can be provided for display when entering the tab switching mode from browsing mode, and from exiting tab switching mode into browsing mode. For example, the visual transition can include a transition from a perspective in front of a currently viewed tabbed window that is zoomed out and pivoted to the perspective vertically above the tabbed window in response to receiving the input of the touch gesture. The visual transition can be animated by, for example, having a viewpoint of the display appear as though it moves from directly in front of the currently viewed tab window to above and slightly in front of the tab window and any other tab windows. The tabbed windows can be displayed at varying degrees with respect to the perspective vertically above the tabbed windows, for example, as if each tabbed window were attached along the bottom of each tabbed window to a shared rotating spindle.

A distance between two tabbed windows can be increased in response to a received multi-touch gesture input or physical movement of the client110(e.g., using an accelerometer or other motion detector in the client110). For example, a user may place a finger on a first tabbed window and a thumb on a second tabbed window and move the finger and thumb further apart in order to create more space between the first and second tabbed windows so that the first tabbed window can be better viewed. As another example, if the user is holding a client110that is a tablet computer while in tab switching mode, and the user then rotates the top of the tablet computer slightly away from the user, then more space between the first and second tabbed windows is created so that the first tabbed window can be better viewed.

FIG. 3illustrates an example process300for switching between tabbed windows using the example client110ofFIG. 2. WhileFIG. 3is described with reference toFIG. 2, it should be noted that the process steps ofFIG. 3may be performed by other systems. The process300begins by proceeding from beginning step301when an application222is opened on the client110to step302when an input of a touch gesture including a dragging motion is received via the touch interface device216. Next, in step303, a determination is made whether the touch gesture begins within a predetermined distance from a first edge of the touch interface device216and proceeds towards a second edge of the touch interface device216. In step304, in response to determining that the touch gesture begins within the predetermined distance from the first edge and proceeds towards the second edge, at least one tabbed window in an application222is provided for display on the touch interface device216from a perspective vertically above the at least one tabbed window. The process300ends in step305.

FIG. 3sets forth an example process300for switching between tabbed windows using the example client110ofFIG. 2. An example will now be described using the example process300ofFIG. 3, a client110that is a tablet computer, an application222that is a web browser, and documents224bthat are web pages.

As provided in the example illustration400ofFIG. 4A, the process300begins by proceeding from beginning step301when a web browser222is opened on the tablet computer110and several web pages224bare displayed as tabbed windows408,410,412,414, and416in the web browser222. The user is holding the tablet computer110with the user's left hand422and right hand424.

In step302, an input of a touch gesture418from the user's left hand422including a dragging motion420is received on the tablet computer110. Next, in step303, a determination is made whether the touch gesture420begins within a predetermined distance from a first edge of the touch interface device216(e.g., near the left edge426or right edge428of the tablet computer110) and proceeds towards a second edge of the touch interface device216. In this case, it is determined that the touch gesture420begins within the predetermined distance from the left edge426of the touch interface device216and proceeds towards the second edge428of the touch interface device216. In step304and as provided in the example illustration430ofFIG. 4B, in response to determining that the touch gesture418begins within the predetermined distance from the left edge426and proceeds towards the right edge428, a tab switching mode is entered in the web browser222such that each of the tabbed windows408,410,412,414, and416in the web browser222are provided for display on the tablet computer110from a perspective vertically above the tabbed windows408,410,412,414, and416.

The tabbed windows408,410,412,414, and416are displayed at varying degrees with respect to the perspective vertically above the tabbed windows408,410,412,414, and416, for example, as if each tabbed window408,410,412,414, and416were attached along the bottom of each tabbed window408,410,412,414, and416to a shared rotating spindle. The distance between the currently displayed tabbed window412that was being viewed as illustrated inFIG. 4Awhen entering tab switching mode and the other tabbed windows408,410,414, and416and the tabbed window414being displayed in front of the currently displayed tabbed window412is greater than a distance between each of the remaining tabbed windows408,410, and416being displayed so that the currently displayed tabbed window412remains most visible in the tab switching mode illustrated inFIG. 4B.

As discussed above, the distance between two of the tabbed windows408,410,412,414, and416can be increased in response to a received multi-touch gesture input or physical movement of the client110. For example, as provided in the example illustration440ofFIG. 4C, the user may place a finger442on a first tabbed window412and a thumb on a second tabbed window414and move the finger and thumb further apart in opposing directions446and448in order to create more space between the first tabbed window412and the second tabbed window448so that the first tabbed window can be better viewed. As another example, and as provided in the example illustration460ofFIG. 4D, if the user is holding the tablet computer110while in tab switching mode, and the user then rotates the tablet computer110along paths462aand462bfor both edges slightly away from the user, which is sensed by an accelerometer within the tablet computer110, then more space between the first tabbed window412and the second tabbed window414can be created so that the first tabbed window412can be better viewed. The example illustration470ofFIG. 4Eillustrates an increase in space472between the first tabbed window412and the second tabbed window414in response to the multi-touch gesture ofFIG. 4Cor the movement of the tablet computer110inFIG. 4Dand a decrease in space474between other tabbed windows410and412. The process300ends in step305.

FIG. 5is a block diagram illustrating an example computer system500with which the client110and server130ofFIG. 2can be implemented. In certain aspects, the computer system500may be implemented using hardware or a combination of software and hardware, either in a dedicated server, or integrated into another entity, or distributed across multiple entities.

Computer system500(e.g., client110and server130) includes a bus508or other communication mechanism for communicating information, and a processor502(e.g., processor212and236) coupled with bus508for processing information. By way of example, the computer system500may be implemented with one or more processors502. Processor502may be a general-purpose microprocessor, a microcontroller, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable entity that can perform calculations or other manipulations of information.

Computer system500can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them stored in an included memory504(e.g., memory220and232), such as a Random Access Memory (RAM), a flash memory, a Read Only Memory (ROM), a Programmable Read-Only Memory (PROM), an Erasable PROM (EPROM), registers, a hard disk, a removable disk, a CD-ROM, a DVD, or any other suitable storage device, coupled to bus508for storing information and instructions to be executed by processor502. The processor502and the memory504can be supplemented by, or incorporated in, special purpose logic circuitry.

Computer system500further includes a data storage device506such as a magnetic disk or optical disk, coupled to bus508for storing information and instructions. Computer system500may be coupled via input/output module510to various devices. The input/output module510can be any input/output module. Example input/output modules510include data ports such as USB ports. The input/output module510is configured to connect to a communications module512. Example communications modules512(e.g., communications module218and238) include networking interface cards, such as Ethernet cards and modems. In certain aspects, the input/output module510is configured to connect to a plurality of devices, such as an input device514(e.g., touch interface device216) and/or an output device516(e.g., touch interface device216). Example input devices514include a keyboard and a pointing device, e.g., a mouse or a trackball, by which a user can provide input to the computer system500. Other kinds of input devices514can be used to provide for interaction with a user as well, such as a tactile input device, visual input device, audio input device, or brain-computer interface device. For example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, tactile, or brain wave input. Example output devices516include display devices, such as a LED (light emitting diode), CRT (cathode ray tube), or LCD (liquid crystal display) screen, for displaying information to the user.

According to one aspect of the present disclosure, the client110and server130can be implemented using a computer system500in response to processor502executing one or more sequences of one or more instructions contained in memory504. Such instructions may be read into memory504from another machine-readable medium, such as data storage device506. Execution of the sequences of instructions contained in main memory504causes processor502to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in memory504. In alternative aspects, hard-wired circuitry may be used in place of or in combination with software instructions to implement various aspects of the present disclosure. Thus, aspects of the present disclosure are not limited to any specific combination of hardware circuitry and software.

These and other implementations are within the scope of the following claims.