CROSS REFERENCE TO RELATED APPLICATIONS

This application is a regular utility of earlier-filed U.S. Application No. 62/911,520, filed on Oct. 7, 2019, the contents and teachings of which are hereby incorporated by reference in their entirety.

BACKGROUND

A conventional electronic tablet includes a touchscreen to receive finger gestures from a user while simultaneously displaying content to the user. Example finger gestures include a single finger tap, a double finger tap, a single finger swipe, a two finger swipe, a pinch-in gesture (two fingers moving towards each other), and a pinch-out gesture (two fingers moving away from each other).

Such a conventional electronic tablet may further include a wireless interface to receive mouse input from a wireless computer mouse. Example mouse input includes mouse coordinates, button presses, button releases, scrolling input, and so on.

SUMMARY

Improved techniques involve dynamically switching a user device (e.g., a smart phone, a tablet, a laptop equipped with a touchscreen, other mobile and/or touch devices, etc.) between a native pointer mode and a desktop-class pointer mode when processing input from an input device (e.g., a trackball, a trackpad, a touchscreen, an external mouse, and other pointing or peripheral computing devices, etc.). Such mode changing may involve more than merely changing pointer graphics by controlling how to process input from the input device (e.g., interpreting the input as standard pointer input for a local application vs. sending the input to a remote desktop session, etc.). Such mode switching may be in response to events such as context changes (e.g., establishing/closing a remote desktop session, switching focus between a local application and a remote desktop session, etc.) which occur and are detected in real time.

In the native pointer mode, the user device receives standard pointer input from an input device and, in response to the standard pointer input, provides standard pointer behavior which may be viewable on the touchscreen. Such standard pointer behavior may include displaying a native pointer, moving the native pointer in response to movement of the input device, enabling the standard pointer input to control one or more local applications, etc. Additionally, the user device may provide the standard pointer behavior while responding to gestures provided on a touchscreen of the user device such as taps, swipes, two-finger swipes, simple touchscreen gestures which are mapped to assistive or complex touchscreen gestures, and so on.

In the desktop-class pointer mode, the user device receives desktop-class pointer input from the input device and, in response to the desktop-class pointer input, provides desktop-class pointer behavior instead of the standard pointer behavior. In particular, the user device hides (or no longer displays on the touchscreen) the native pointer and sends the desktop-class pointer input to a desktop-class (or style) interface which enables the user to access a desktop-class environment using the user device and the input device. The desktop-class environment may include a remote desktop (or virtualized) session to control a set of remote desktop session resources hosted on remote session equipment. Examples of a remote resource include a remote (or virtual) desktop or workspace, a remote application, a remote virtual machine and a remote session platform, and so on.

As part of the remote desktop session, the touchscreen of the user device displays a workspace environment that appears to be local (e.g., a view or image of a desktop) and a virtualized pointer (e.g., a mouse cursor or similar pointing icon) that moves within that workspace environment in response to the desktop-class pointer input. Accordingly, the user is able to control a rich and robust set of remote desktop session resources which are external to the user device using the input device.

In accordance with certain embodiments, the user device may disable certain touchscreen features. For example, if the user device maps simple touchscreen gestures to assistive or complex touchscreen gestures during native pointer mode, the user device may turn off such features during desktop-class pointer mode.

To enable the user device to transition between the native pointer mode and the desktop-class pointer mode, the user device is constructed and arranged to dynamically switch between these pointer modes in response to events such as context changes. Such context changes may include launching a special workspace application that creates/opens the desktop-class interface, closing the desktop-class interface, activating a local environment (or local application) after working in the desktop-class interface, activating the desktop-class interface after working in the local environment, establishing and/or closing a remote desktop session while the desk-top class interface continues to run on the user device, identifying pointer transitions within multiscreen layouts (e.g., edge detection), and so on.

Accordingly, the user device may reside (or operate) in the native pointer mode at one time, and the desktop-class pointer mode at another time. Furthermore, switching between the pointer modes may be transparent/automated without burdening the user.

One embodiment is directed to a method of processing, in a user device, pointer input from an input device such as an external mouse or similar pointing device. The method includes providing the input from the input device to a remote desktop session which is hosted on equipment that is remote from the user device. The method further includes detecting an event on the user device, the event being indicative of deactivation of the remote desktop session. The method further includes, in response to detecting the event, providing the input from the input device to at least one local application executable on the user device to enable continued processing of the input from the input device with use of the at least one local application instead of the remote desktop session.

In some arrangements, the user device includes a touchscreen. Additionally, providing the input from the input device to the remote desktop session includes displaying a first cursor on the touchscreen and moving the first cursor in response to the input from the input device. Furthermore, providing the input from the input device to the at least one local application executable on the user device includes displaying a second cursor on the touchscreen in place of the first cursor and moving the second cursor in response to the input from the input device, the first cursor and the second cursor being visually different.

In some arrangements, the method further includes, while providing the input from the input device to the remote desktop session, displaying a view of a virtual desktop on the touchscreen. The first cursor moves within the view of the virtual desktop in response to the input from the input device.

In some arrangements, displaying the first cursor on the touchscreen and moving the first cursor in response to the input from the input device includes controlling at least one remote application viewable in the virtual desktop using the input from the input device. The at least one remote application is hosted remotely from the user device.

In some arrangements, the method further includes sending, from the user device to the input device, a wireless command that switches the input device from a desktop-class pointer state in which the input device provides desktop-class pointer data as the input to a native pointer state in which the input device provides native pointer data as the input.

In some arrangements, the method further includes detecting another event, the another event indicative of activation of the remote desktop session; and in response to detecting the another event, providing the input from the input device to the remote desktop session.

In some arrangements, the method further includes sending, from the user device to the input device, another wireless command to switch the input device from the native pointer state to the desktop-class pointer state.

In some arrangements, the method further includes, after the input from the input device is provided to the at least one local application, detecting another event, the another event indicative of activation of the remote desktop session; and in response to detecting the another event, transitioning from a native pointer mode back to a desktop-class pointer mode, the native pointer mode configured to provide the input from the input device to the at least one local application, and the desktop-class pointer mode configured to provide the input from the input device to the remote desktop session.

In some arrangements, the method further includes, before the input from the input device is provided to the remote desktop session, detecting another event, the another event indicative of activation of the remote desktop session; and in response to detecting the another event, transitioning from a native pointer mode to a desktop-class pointer mode, the native pointer mode configured to provide the input from the input device to the at least one local application, and the desktop-class pointer mode configured to provide the input from the input device to the remote desktop session.

In some arrangements, detecting the event includes detecting, as the event, deactivation and placement of the remote desktop session in the background. Additionally, the method further includes switching from providing the input from the input device to the remote desktop session to providing the input from the input device to the at least one local application in response to deactivation and placement of the remote desktop session in the background.

In some arrangements, detecting the event includes detecting, as the event, termination of the remote desktop session. Additionally, the method further includes switching from providing the input from the input device to the remote desktop session to providing the input from the input device to the at least one local application in response to termination of the remote desktop session.

In some arrangements, detecting the event includes detecting, as the event, activation of the at least one local application over the remote desktop session. Additionally, the method further includes switching from providing the input from the input device to the remote desktop session to providing the input from the input device to the at least one local application in response to activation of the at least one local application over the remote desktop session.

In some arrangements, detecting the event includes detecting, as the event, exiting of the remote desktop session due to an application crash. Additionally, the method further includes switching from providing the input from the input device to the remote desktop session to providing the input from the input device to the at least one local application in response to exiting of the remote desktop session due to an application crash.

In some arrangements, the input device is an external mouse. Additionally, the user device communicates with the external mouse via Bluetooth® wireless technology. Furthermore, the user device communicates with the remote desktop session via a computerized network.

Another embodiment is directed to a computer program product having a non-transitory computer readable medium that stores a set of instructions to process pointer input from an input device. The set of instructions, when carried out by a user device, causes the user device to perform a method of:(A) providing the input from the input device to a remote desktop session which is hosted on equipment that is remote from the user device;(B) detecting an event on the user device, the event indicative of deactivation of the remote desktop session; and(C) in response to detecting the event, providing the input from the input device to at least one local application executable on the user device to enable continued processing of the input from the input device with use of the at least one local application instead of the remote desktop session.

Yet another embodiment is directed to a user device which includes a touchscreen, memory, and control circuitry coupled to the touchscreen and the memory. The memory stores instructions that, when carried out by the control circuitry, cause the control circuitry to:(A) provide the input from the input device to a remote desktop session which is hosted on equipment that is remote from the user device,(B) detect an event on the user device, the event indicative of deactivation of the remote desktop session, and(C) in response to detecting the event, provide the input from the input device to at least one local application executable on the user device to enable continued processing of the input from the input device with use of the at least one local application instead of the remote desktop session.

It should be understood that, in the cloud context, some electronic circuitry is formed by remote computer resources that may be distributed over a network. Such a computerized environment is capable of providing certain advantages such as distribution of hosted services and resources (e.g., software as a service, platform as a service, infrastructure as a service, etc.), enhanced scalability, etc.

Another embodiment is directed to a method of controlling a user device from an input device. The method includes:(A) providing first input from the input device to the user device to control a remote desktop session which is hosted on equipment that is remote from the user device;(B) providing second input from the input device to the user device to provide a context change from the remote desktop session to at least one local application executable on the user device; and(C) after the context change, providing third input from the input device to the user device to control the at least one local application instead of the remote desktop session.

In some arrangements, providing the first input includes operating in a desktop-class pointer state to provide desktop-class pointer input to the user device. Additionally, providing the third input includes operating in a native pointer state to provide native pointer input to the user device. Also, the method further includes transitioning from the desktop-class pointer state to the native pointer state in response to a command from the user device indicating that the user device has dynamically switched from a desktop-class pointer mode to a native pointer mode due to the context change from the remote desktop session to the at least one local application executable.

In some arrangements, the method further includes after providing the third input, providing fourth input from the input device to the user device. Such input provides another context change from the at least one local application executable on the user device to the remote desktop session which is hosted on the equipment that is remote from the user device.

Yet another embodiment is directed to an input device which includes a body, a communications interface, and circuitry disposed with the body and coupled with the communications interface. The circuitry is constructed and arranged to:(A) provide first input to a user device through the communications interface to control a remote desktop session which is hosted on equipment that is remote from the user device,(B) provide second input to the user device through the communications interface to provide a context change from the remote desktop session to at least one local application executable on the user device, and(C) provide third input to the user device through the communications interface to control the at least one local application instead of the remote desktop session.

Other embodiments are directed to electronic systems and apparatus, processing circuits, computer program products, and so on. Some embodiments are directed to various methods, electronic components and circuitry that are involved in dynamically switching between a native pointer mode and a desktop-class pointer mode.

