Cursor behavior

By coordinating cursor behavior management methods for different applications in computer systems and dynamically adjusting cursor operations, the problem of inefficient cursor management in the existing technology is solved, and more efficient and flexible user interface interaction and power savings are achieved.

CN120406787APending Publication Date: 2025-08-01APPLE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510125606.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-05-30
Filing Date
2025-01-26
Publication Date
2025-08-01

AI Technical Summary

Technical Problem

The prior art is inefficient and ineffective in managing cursor behavior in computer systems, and cannot flexibly configure the behavior of cursors to adapt to different user interface elements and environments.

Method used

By implementing a method and program in a computer system, it allows different applications to coordinate the management of cursor behavior, adjust the operation mode of the cursor according to the cursor behavior request, including enabling or disabling the cursor, and dynamically adjusting the cursor behavior according to user input.

Benefits of technology

Improves the efficiency and flexibility of cursor management, reduces user cognitive burden, optimizes user interface interaction, especially on battery-driven devices to save power and extend battery life.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120406787A_ABST
    Figure CN120406787A_ABST
Patent Text Reader

Abstract

The present disclosure generally relates to cursor behavior. In some embodiments, a method performed at a first application executing on a computer system is described. In some embodiments, the method includes: receiving a first request to use a corresponding cursor behavior from a second application different from the first application; and in conjunction with receiving the first request to use the corresponding cursor behavior: in accordance with determining that the corresponding cursor behavior is a first cursor behavior, causing a cursor to operate in a first manner; and causing the cursor not to be used in accordance with a determination that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior. Thereby, the present disclosure provides a more efficient and / or more efficient technique to manage the behavior of a cursor.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - Reference to Related Applications

[0002] This application claims priority to U.S. Provisional Patent Application Serial No. 63 / 548,745, filed on February 1, 2024, entitled "CURSOR BEHAVIOR", which is hereby incorporated by reference in its entirety for all purposes. BACKGROUND OF THE INVENTION

[0003] Computer systems are becoming increasingly complex. For example, a computer system can simultaneously execute many different applications while providing a consistent interface for each application, including a cursor that allows focusing on and / or selecting user interface elements of the application. Managing the cursor in this complex environment can be difficult. Thus, there is a need for improved techniques for managing the behavior of the cursor. SUMMARY OF THE INVENTION

[0004] Current techniques for managing the behavior of the cursor are generally ineffective and / or inefficient. For example, some techniques do not allow selectively configuring the behavior of the cursor surface by surface. The present disclosure provides more effective and / or more efficient techniques for managing the behavior of the cursor using examples of virtual reality environments. It should be recognized that user interface elements other than the cursor and / or environments other than virtual reality environments can be used with the techniques described herein. Additionally, the techniques optionally supplement or replace other techniques for managing the behavior of the cursor.

[0005] In some embodiments, a method is described that is performed at a first application executing on a computer system. In some embodiments, the method includes: receiving, from a second application different from the first application, a first request to use a corresponding cursor behavior; and in conjunction with receiving the first request to use the corresponding cursor behavior: causing the cursor to operate in a first manner based on determining that the corresponding cursor behavior is a first cursor behavior; and causing the cursor not to be used based on determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior.

[0006] In some embodiments, a non-transitory computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system. In some embodiments, the one or more programs correspond to a first application executing on the computer system and include instructions for: receiving a first request to use a corresponding cursor behavior from a second application different from the first application; and in conjunction with receiving the first request to use the corresponding cursor behavior: causing the cursor to operate in a first manner based on determining that the corresponding cursor behavior is a first cursor behavior; and causing the cursor not to be used based on determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior.

[0007] In some embodiments, a transitory computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system. In some embodiments, the one or more programs correspond to a first application executing on the computer system and include instructions for: receiving a first request to use a corresponding cursor behavior from a second application different from the first application; and in conjunction with receiving the first request to use the corresponding cursor behavior: causing the cursor to operate in a first manner based on determining that the corresponding cursor behavior is a first cursor behavior; and causing the cursor not to be used based on determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior.

[0008] In some embodiments, a first application executing on a computer system is described. In some embodiments, the computer system includes: one or more processors; and a memory that stores one or more programs configured to be executed by the one or more processors. In some embodiments, the one or more programs include instructions for: receiving a first request to use a corresponding cursor behavior from a second application different from the first application; and in conjunction with receiving the first request to use the corresponding cursor behavior: causing the cursor to operate in a first manner based on determining that the corresponding cursor behavior is a first cursor behavior; and causing the cursor not to be used based on determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior.

[0009] In some embodiments, a first application executed on a computer system is described. In some embodiments, the computer system includes components for performing each of the following steps: receiving a first request to use a corresponding cursor behavior from a second application different from the first application; and in combination with receiving the first request to use the corresponding cursor behavior: causing the cursor to operate in a first manner based on determining that the corresponding cursor behavior is a first cursor behavior; and causing the cursor not to be used based on determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior.

[0010] In some embodiments, a computer program product is described. In some embodiments, the computer program product includes one or more programs that are configured to be executed by one or more processors of a computer system. In some embodiments, the one or more programs correspond to a first application executed on the computer system and include instructions for: receiving a first request to use a corresponding cursor behavior from a second application different from the first application; and in combination with receiving the first request to use the corresponding cursor behavior: causing the cursor to operate in a first manner based on determining that the corresponding cursor behavior is a first cursor behavior; and causing the cursor not to be used based on determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior.

[0011] In some embodiments, a method executed at a first application executed on a computer system is described. In some embodiments, the method includes: identifying a user interface to be displayed by the computer system; after identifying the user interface to be displayed by the computer system, transmitting a definition of the user interface to a second application, where the definition includes: a definition of a first surface, the definition of the first surface causing the cursor to behave in a first manner relative to the first surface; and a definition of a second surface, the second surface being different from the first surface, the definition of the second surface causing the cursor to behave in a second manner different from the first manner relative to the second surface; and after transmitting the definition of the user interface, receiving an indication of user input corresponding to the first surface; and in response to receiving the indication of the user input corresponding to the first surface, performing an operation based on the user input.

[0012] In some embodiments, a non-transitory computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system. In some embodiments, the one or more programs correspond to a first application executing on the computer system and include instructions for: identifying a user interface to be displayed by the computer system; after identifying the user interface to be displayed by the computer system, transmitting a definition of the user interface to a second application, where the definition includes: a definition of a first surface, the definition of the first surface causing a cursor to behave in a first manner relative to the first surface; and a definition of a second surface, the second surface being different from the first surface, the definition of the second surface causing the cursor to behave in a second manner different from the first manner relative to the second surface; and after transmitting the definition of the user interface, receiving an indication of user input corresponding to the first surface; and in response to receiving the indication of the user input corresponding to the first surface, performing an operation based on the user input.

[0013] In some embodiments, a transitory computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system. In some embodiments, the one or more programs correspond to a first application executing on the computer system and include instructions for: identifying a user interface to be displayed by the computer system; after identifying the user interface to be displayed by the computer system, transmitting a definition of the user interface to a second application, where the definition includes: a definition of a first surface, the definition of the first surface causing a cursor to behave in a first manner relative to the first surface; and a definition of a second surface, the second surface being different from the first surface, the definition of the second surface causing the cursor to behave in a second manner different from the first manner relative to the second surface; and after transmitting the definition of the user interface, receiving an indication of user input corresponding to the first surface; and in response to receiving the indication of the user input corresponding to the first surface, performing an operation based on the user input.

[0014] In some embodiments, a first application executed on a computer system is described. In some embodiments, the computer system includes: one or more processors; and a memory that stores one or more programs configured to be executed by the one or more processors. In some embodiments, the one or more programs correspond to the first application executed on the computer system and include instructions for: identifying a user interface to be displayed by the computer system; after identifying the user interface to be displayed by the computer system, transmitting a definition of the user interface to a second application, where the definition includes: a definition of a first surface, the definition of the first surface causing a cursor to behave in a first manner relative to the first surface; and a definition of a second surface, the second surface being different from the first surface, the definition of the second surface causing the cursor to behave in a second manner different from the first manner relative to the second surface; and after transmitting the definition of the user interface, receiving an indication of user input corresponding to the first surface; and in response to receiving the indication of the user input corresponding to the first surface, performing an operation based on the user input.

[0015] In some embodiments, a first application executed on a computer system is described. In some embodiments, the computer system corresponds to the first application executed on the computer system and includes components for performing each of the following steps: identifying a user interface to be displayed by the computer system; after identifying the user interface to be displayed by the computer system, transmitting a definition of the user interface to a second application, where the definition includes: a definition of a first surface, the definition of the first surface causing a cursor to behave in a first manner relative to the first surface; and a definition of a second surface, the second surface being different from the first surface, the definition of the second surface causing the cursor to behave in a second manner different from the first manner relative to the second surface; and after transmitting the definition of the user interface, receiving an indication of user input corresponding to the first surface; and in response to receiving the indication of the user input corresponding to the first surface, performing an operation based on the user input.

[0016] In some embodiments, a computer program product is described. In some embodiments, the computer program product includes one or more programs configured to be executed by one or more processors of a computer system. In some embodiments, the one or more programs correspond to a first application executing on the computer system and include instructions for: identifying a user interface to be displayed by the computer system; after identifying the user interface to be displayed by the computer system, transmitting a definition of the user interface to a second application, where the definition includes: a definition of a first surface, the definition of the first surface causing a cursor to behave in a first manner relative to the first surface; and a definition of a second surface, the second surface being different from the first surface, the definition of the second surface causing the cursor to behave in a second manner different from the first manner relative to the second surface; and after transmitting the definition of the user interface, receiving an indication of user input corresponding to the first surface; and in response to receiving the indication of the user input corresponding to the first surface, performing an operation based on the user input.

[0017] Executable instructions for performing these functions are optionally included in a non-transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors. Executable instructions for performing these functions are optionally included in a transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] To better understand the various described embodiments, reference should be made to the following detailed description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts in all the drawings.

[0019] Figure 1 An example system architecture including various electronic devices that can implement the subject matter systems according to some embodiments is illustrated.

[0020] Figure 2 A block diagram illustrating example features of an electronic device according to some embodiments is shown.

[0021] Figure 3 A diagram of a computer system according to some embodiments is illustrated.

[0022] Figure 4 A diagram illustrating communication between a cursor process and a user process according to some embodiments is shown.

[0023] Figures 5A to 5F An exemplary user interface for managing the behavior of a cursor according to some embodiments is illustrated.

[0024] Figure 6 is a flowchart illustrating a method for managing the behavior of a cursor according to some embodiments.

[0025] Figure 7 is a flowchart illustrating a method for changing the behavior of a cursor according to some embodiments.

[0026] Figure 8 illustrates an electronic system that can be used to implement one or more specific implementations of the subject technology. Detailed Description

[0027] The following description sets forth exemplary methods, parameters, etc. However, it should be recognized that such description is not intended to limit the scope of the disclosure, but rather is provided as a description of exemplary embodiments.

[0028] The methods described herein may include one or more steps depending on the satisfaction of one or more conditions. It should be understood that a method may occur in multiple iterations of the same process, where different steps of the method are satisfied in different iterations. For example, if a method requires a first step to be performed when it is determined that a set of one or more criteria is satisfied, and a second step to be performed when it is determined that the set of one or more criteria is not satisfied, then one of ordinary skill in the art will understand that the steps of the method are repeated until both conditions are satisfied in no particular order. Thus, a method described as having steps depending on the satisfaction of conditions can be rewritten as a method that repeats until each of the conditions described in the method is satisfied. However, this is not what is required by system claims or computer-readable medium claims, where the system claims or computer-readable medium claims include instructions for performing one or more steps that depend on the satisfaction of one or more conditions. Because the instructions for system claims or computer-readable medium claims are stored in one or more processors and / or at one or more memory locations, the system claims or computer-readable medium claims include logic that can determine whether one or more conditions have been satisfied without explicitly repeating the steps of the method until all of the conditions upon which the steps of the method are based have been satisfied. One of ordinary skill in the art will also understand that, similar to a method having steps that depend on circumstances, a system or computer-readable storage medium may repeat the steps of the method as many times as needed to ensure that all of the steps that depend on circumstances have been performed.

[0029] Although the following description uses terms such as "first" and "second" to describe various elements, these elements should not be limited by the terms. In some examples, these terms are used to distinguish between individual elements. For example, without departing from the scope of the various described embodiments, the first subsystem may be referred to as the second subsystem, and similarly, the second subsystem device or subsystem device may be referred to as the first subsystem device. In some examples, the first subsystem and the second subsystem are two separate references to the same subsystem. In some examples, both the first subsystem and the second subsystem are subsystems, but they are not the same subsystem or the same type of subsystem.

[0030] The terms used in the description of the various described embodiments herein are for the purpose of describing particular embodiments only and are not intended to be limiting. As used in the description of the various described embodiments and the appended claims, the singular forms "a" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will also be understood that the terms "comprises" and / or "comprising," when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0031] Depending on the context, the term "if" is optionally interpreted to mean "when," "upon," "in response to determining," "in response to detecting," or "in accordance with determining." Similarly, depending on the context, the phrase "if determined" or "if detected [the stated condition or event]" is optionally interpreted to mean "when determining," "in response to determining," "when detecting [the stated condition or event]," "in response to detecting [the stated condition or event]," or "in accordance with determining [the stated condition or event]."

[0032] The physical environment refers to the physical world that people can sense and / or interact with without the help of electronic devices. The physical environment can include physical features such as physical surfaces or physical objects. For example, the physical environment corresponds to a physical park that includes physical trees, physical buildings, and physical people. People can directly sense and / or interact with the physical environment, such as through vision, touch, hearing, taste, and smell. In contrast, an extended reality (XR) environment refers to a fully or partially simulated environment that people sense and / or interact with via electronic devices. For example, an XR environment can include augmented reality (AR) content, mixed reality (MR) content, virtual reality (VR) content, etc. In the case of an XR system, a subset of a person's physical movements or their representations is tracked, and in response, one or more characteristics of one or more virtual objects simulated in the XR environment are adjusted in a manner that conforms to at least one physical law. As an example, the XR system can detect head movements and, in response, adjust the graphical content and sound field presented to the person in a manner similar to how such views and sounds would change in the physical environment. As another example, the XR system can detect the movement of an electronic device (e.g., a mobile phone, a tablet computer, a laptop computer, etc.) presenting the XR environment and, in response, adjust the graphical content and sound field presented to the person in a manner similar to how such views and sounds would change in the physical environment. In some cases (e.g., for accessibility reasons), the XR system can adjust the characteristics of graphical content in the XR environment in response to a representation of physical movement (e.g., a voice command).

[0033] There are many different types of electronic systems that enable a person to sense and / or interact with various XR environments. Examples include head-mounted systems, projection-based systems, head-up displays (HUDs), vehicle windshields integrated with display capabilities, windows integrated with display capabilities, displays formed as lenses designed to be placed on a person's eyes (e.g., similar to contact lenses), headphones / earpieces, speaker arrays, input systems (e.g., wearable or handheld controllers with or without haptic feedback), smart phones, tablet computers, and desktop / laptop computers. A head-mounted system may have one or more speakers and an integrated opaque display. Alternatively, a head-mounted system may be configured to receive an external opaque display (e.g., a smart phone). A head-mounted system may incorporate one or more imaging sensors for capturing images or video of the physical environment and / or one or more microphones for capturing audio of the physical environment. A head-mounted system may have a transparent or translucent display instead of an opaque display. The transparent or translucent display may have a medium through which light representing an image is directed to a person's eyes. The display may utilize digital light projection, OLED, LED, uLED, liquid crystal on silicon, laser scanning light sources, or any combination of these technologies. The medium may be an optical waveguide, a holographic medium, an optical combiner, an optical reflector, or any combination thereof. In some embodiments, the transparent or translucent display may be configured to selectively become opaque. A projection-based system may employ retinal projection technology that projects a graphical image onto a person's retina. The projection system may also be configured to project virtual objects into the physical environment, such as as a hologram or on a physical surface.

[0034] Figure 1 An example system architecture (e.g., system architecture 100) that includes various electronic devices that can implement the systems of the present subject matter is illustrated in accordance with one or more embodiments. However, not all of the depicted components may be used in all embodiments, and one or more embodiments may include additional or different components compared to those shown in the figures. Variations in the arrangement and type of these components may be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components may be provided.

[0035] System architecture 100 includes electronic device 105, handheld electronic device 104, electronic device 110, electronic device 115, and server 120. For purposes of explanation, system architecture 100 is illustrated in Figure 1 as including electronic device 105, handheld electronic device 104, electronic device 110, electronic device 115, and server 120; however, system architecture 100 may include any number of electronic devices and any number of servers or a data center including multiple servers.

[0036] The electronic device 105 can be implemented, for example, as a tablet device, a smart phone, and / or a wearable portable system (e.g., worn by the user 101). The electronic device 105 includes a display system capable of presenting a visualization of an extended reality environment to the user. The electronic device 105 can be powered by a battery and / or another power source. In one example, the display system of the electronic device 105 provides a stereoscopic presentation of the extended reality environment, enabling a three-dimensional visual display of a specific scene rendering. In one or more specific implementations, instead of using the electronic device 105 to access the extended reality environment or in addition thereto, the user can use a handheld electronic device 104, such as a tablet computer, a watch, a mobile device, etc.

[0037] The electronic device 105 can include one or more cameras, such as the camera 150 (e.g., a visible light camera, an infrared camera, etc.). For example, the electronic device 105 can include multiple cameras 150. For example, the multiple cameras 150 can include a left camera, a front camera, a right camera, a bottom camera, a bottom left camera, a bottom right camera, a top camera, one or more eye cameras, and / or other cameras. Each of the cameras 150 can include one or more image sensors (e.g., a charge-coupled device (CCD) image sensor, a complementary metal oxide semiconductor (CMOS) image sensor, etc.).

[0038] In addition, the electronic device 105 can include various sensors 152, including but not limited to other cameras, other image sensors, touch sensors, microphones, inertial measurement units (IMUs), heart rate sensors, temperature sensors, depth sensors (e.g., lidar sensors, radar sensors, sonar sensors, time-of-flight sensors, etc.), GPS sensors, Wi-Fi sensors, near field communication sensors, radio frequency sensors, etc. In addition, the electronic device 105 can include hardware elements that can receive user input, such as hardware buttons or switches. User input detected by such cameras, sensors, and / or hardware elements can correspond to, for example, various input modalities. For example, such input modalities can include but are not limited to face tracking, eye tracking (e.g., gaze direction), hand tracking, gesture tracking, biometric readings (e.g., heart rate, pulse, pupil dilation, respiration, temperature, electroencephalogram, smell), recognizing speech or audio (e.g., a specific hot word), and activating buttons or switches, etc. In one or more specific implementations, face tracking, gaze tracking, hand tracking, gesture tracking, object tracking, and / or physical environment mapping processes (e.g., system processes and / or application processes) can utilize images (e.g., image frames) captured by one or more image sensors of the camera 150 and / or the sensors 152.

[0039] In one or more embodiments, the electronic device 105 may be communicatively coupled to a base device, such as electronic device 110 and / or electronic device 115. Generally speaking, compared to the electronic device 105, such base devices may include more computing resources and / or available power. In one example, the electronic device 105 may operate in various modes. For example, the electronic device 105 may operate in an independent mode independent of any base device. When the electronic device 105 operates in the independent mode, the number of input modalities may be constrained by the power and / or processing limitations of the electronic device 105 (such as the available battery power of the device). In response to the power limitation, the electronic device 105 may deactivate certain sensors within the device itself to conserve battery power and / or release processing resources.

[0040] The electronic device 105 may also operate in a wireless tethered mode (e.g., connected to a base device via a wireless connection) to work in conjunction with a given base device. The electronic device 105 may also operate in a connection mode in which the electronic device 105 is physically connected (e.g., via a cable or some other physical connector) to the base device, and may utilize the power resources provided by the base device (e.g., in the case where the base device is charging and / or powering the electronic device 105 when physically connected).

[0041] When the electronic device 105 operates in the wireless tethered mode or the connection mode, at least a portion of processing user input and / or rendering an extended reality environment may be offloaded to the base device, thereby reducing the processing burden on the electronic device 105. For example, in one embodiment, the electronic device 105 works in conjunction with the electronic device 110 or the electronic device 115 to generate an extended reality environment including physical objects and / or virtual objects, and different forms of interaction (e.g., visual, auditory, and / or physical or tactile interaction) are realized in real time between the user and the generated extended reality environment. In one example, the electronic device 105 provides a rendering of a scene corresponding to the extended reality environment (such as a host environment for a group session with another user), and the extended reality environment can be perceived by the user and interacted with in real time. Additionally, as part of presenting the rendered scene, the electronic device 105 may provide the user with sound and / or tactile or haptic feedback. The content of a given rendered scene may depend on the available processing power, network availability and capacity, available battery power, and current system workload. The electronic device 105 may be and / or may include all or part of the electronic system discussed below with respect to Figure 8 discussed.

[0042] Network 106 may communicatively (directly or indirectly) couple, for example, electronic device 105, electronic device 110, and / or electronic device 115 with each other device and / or server 120. In one or more specific embodiments, network 106 may be an interconnected network that may include the Internet or devices communicatively coupled to the Internet.

[0043] The handheld electronic device 104 may be, for example, a smart phone, a portable computing device (such as a laptop computer), an accessory device (e.g., a digital camera, headphones), a tablet device, a wearable device (such as a watch, a wristband, etc.), or any other suitable device that includes, for example, one or more speakers, communication circuitry, processing circuitry, memory, a touch screen, and / or a touchpad. In one or more specific embodiments, the handheld electronic device 104 may not include a touch screen but may support touch screen-like gestures, such as in an extended reality environment. In one or more specific embodiments, the handheld electronic device 104 may include a touchpad. In Figure 1 which, by way of example, the handheld electronic device 104 is depicted as a tablet device.

[0044] The electronic device 110 may be, for example, a smart phone, a portable computing device (such as a laptop computer), an accessory device (e.g., a digital camera, headphones), a tablet device, a wearable device (such as a watch, a wristband, etc.), or any other suitable device that includes, for example, one or more speakers, communication circuitry, processing circuitry, memory, a touch screen, and / or a touchpad. In one or more specific embodiments, the electronic device 110 may not include a touch screen but may support touch screen-like gestures, such as in an extended reality environment. In one or more specific embodiments, the electronic device 110 may include a touchpad. In Figure 1 which, by way of example, the electronic device 110 is depicted as a tablet device. In one or more specific embodiments, the electronic device 110, the handheld electronic device 104, and / or the electronic device 105 may be and / or may include all or part of the electronic system discussed below with respect to Figure 8 In one or more specific embodiments, the electronic device 110 may be another device, such as an Internet Protocol (IP) camera, a tablet computer, or an accessory device (such as an electronic stylus), etc.

[0045] The electronic device 115 may be, for example, a desktop computer, a portable computing device (such as a laptop computer), a smart phone, an accessory device (e.g., a digital camera, headphones), a tablet device, a wearable device (such as a watch, a wristband, etc.). In Figure 1 which, by way of example, the electronic device 115 is depicted as a desktop computer having one or more cameras 150 (e.g., multiple cameras 150). The electronic device 115 may be and / or may include all or part of the electronic system discussed below with respect to Figure 8All or part of the described electronic system.

[0046] Server 120 may form all or part of a computer network or server group 130, such as in a cloud computing or data center implementation. For example, server 120 stores data and software and includes specific hardware (e.g., processors, graphics processors, and other dedicated or custom processors) for rendering and generating content (such as graphics, images, videos, audio, and multimedia files) for an extended reality environment. In one implementation, server 120 may be used as a cloud storage server that stores any of the foregoing extended reality content generated by the devices and / or server 120 described above.

[0047] Figure 2 A block diagram illustrating various components that may be included in electronic device 105 in accordance with aspects of the present disclosure. As Figure 2 shown, electronic device 105 may include one or more cameras (such as camera 150) that capture images and / or videos of the physical environment surrounding the electronic device (e.g., multiple cameras 150, each camera including one or more image sensors 215), and one or more sensors 152 that obtain environmental information (e.g., depth information) associated with the physical environment surrounding electronic device 105. Sensors 152 may include depth sensors (e.g., time-of-flight sensors, infrared sensors, radar, sonar, lasers, etc.), one or more microphones, and / or other types of sensors for sensing the physical environment. For example, one or more microphones included in sensors 152 may be operable to capture audio input from a user of electronic device 105, such as a voice input corresponding to the user speaking into the microphone. In Figure 2 an example, in some implementations, electronic device 105 also includes communication circuitry 208 for communicating with electronic device 110, electronic device 115, server 120, and / or other devices and / or systems. Communication circuitry 208 may include radio frequency (RF) communication circuitry for detecting radio frequency identification (RFID) tags, Bluetooth low energy (BLE) communication circuitry, other near field communication (NFC) circuitry, WiFi communication circuitry, cellular communication circuitry, and / or other wired and / or wireless communication circuitry.

[0048] As shown in the figure, the electronic device 105 includes processing circuitry 204 (e.g., one or more processors and / or integrated circuits) and a memory 206. The memory 206 can store (e.g., temporarily or permanently) content generated by and / or otherwise obtained by the electronic device 105. In some operating scenarios, the memory 206 can temporarily store images of the physical environment captured by the camera 150, depth information corresponding to the images generated using, for example, a depth sensor in the sensor 152, a mesh and / or texture corresponding to the physical environment, virtual objects (such as virtual objects generated by the processing circuitry 204 to include virtual content), and / or virtual depth information for the virtual objects. The memory 206 can store (e.g., temporarily or permanently) intermediate images and / or information generated by the processing circuitry 204 for combining images of the physical environment and virtual objects and / or virtual images to form (e.g., synthesize) an image for display by the display 200, such as by compositing one or more virtual objects into a passthrough video stream obtained from one or more cameras in the camera 150.

[0049] As shown in the figure, the electronic device 105 can include one or more speakers 211. The speakers can be operable to output audio content, including audio content stored and / or generated at the electronic device 105, and / or audio content received from a remote device or server via the communication circuitry 208.

[0050] The memory 206 can store instructions or code for execution by the processing circuitry 204, such as, for example, operating system code corresponding to an operating system installed on the electronic device 105 and application code corresponding to one or more applications installed on the electronic device 105. The operating system code and / or application code, when executed, can correspond to one or more operating system-level processes and / or application-level processes, such as processes that support capturing images, obtaining and / or processing environmental condition information, and / or determining inputs to and / or outputs from the electronic device 105 (e.g., display content on the display 200).

[0051] Attention is now directed to techniques for managing the behavior of a cursor. Such techniques are described in the context of communication between a user process and a cursor process. It should be recognized that the techniques described herein can be utilized to manage the behavior of other types of user interface elements. For example, the techniques described herein can be used to manage the behavior of a window. Additionally, the techniques optionally supplement or replace other techniques for managing the behavior of a cursor.

[0052] Figure 3FIG. 0 is a diagram of a computer system 300 according to some embodiments. The computer system 300 includes two distinct spaces (e.g., memory spaces) in which processes are executed. The first space is the kernel space 302, and the second space is the user space 304. The kernel space 302 corresponds to the operating system of the computer system 300 and is where the system applications of the operating system run. The user space 304 is outside the operating system and is where user applications run.

[0053] As Figure 3 illustrated, each of the kernel space 302 and the user space 304 has one or more processes executing therein. In some embodiments, a process is a particular instance of a running program (e.g., a particular executable file and / or program file) on the computer system 300. Examples of processes in the kernel space 302 include a display process, a cursor process, a scheduling process, a resource allocation process, a device management process, an interrupt handling process, and / or a memory management process. Examples of processes in the user space 304 include a word processing process, a calendar process, and / or an Internet browser process. In some embodiments, the processes in the user space 304 are initiated by a user of the computer system 300. For example, the computer system 300 may detect a set of one or more user inputs from the user to initiate an application within a process in the user space 304.

[0054] As Figure 3 illustrated, a cursor process 302a is executing within the kernel space 302, and a first user process 304a is executing within the user space 304. In some embodiments, the cursor process 302a manages a virtual cursor. For example, the cursor process 302a may cause the virtual cursor to be displayed or stopped being displayed in response to detecting a user input, cause the virtual cursor to be moved in response to detecting a user input, communicate operations (e.g., selection, zooming, and / or rotation) that occur relative to the virtual cursor to one or more applications and / or processes, affect the appearance (e.g., size, color, shape, and / or orientation) of the virtual cursor, track the position of the virtual cursor, and / or otherwise perform operations corresponding to, associated with, and / or relative to the virtual cursor. In some embodiments, the computer system 300 allows only a single virtual cursor to be used at a time. It should be appreciated that when the cursor process is referred to as performing an operation herein, one or more other system processes (e.g., a display process) may perform the operation on behalf of and / or in cooperation with the cursor process.

[0055] In some embodiments, communication between kernel space 302 and user space 304 occurs via an application programming interface (API). For example, if an application in user space 304 wants to display content, the application can transmit a message to a process in kernel space 302 via the API.

[0056] Figure 4 Illustrated is a swimlane diagram 400 in accordance with some embodiments. The swimlane diagram 400 includes a cursor process 402 and a user process 404. In some embodiments, the cursor process 402 includes one or more features of the cursor process 302a, and the user process 404 includes one or more features of the first user process 304a. In some embodiments, the cursor process 402 and the user process 404 are executing on a computer system (e.g., computer system 300).

[0057] At step 406, the user process 404 (e.g., via the API) transmits a view of the user interface to the cursor process 402. In some embodiments, the view is a declarative definition of the structure of an application, including the structure of one or more user interfaces and / or one or more user interface elements to be displayed and / or managed by an operating system of a computer system. Although the view is described as being transmitted to the cursor process 402, it should be appreciated that the view can be transmitted to another process of the operating system, and that other process provides at least a portion of the information from the view to manage a virtual cursor with respect to the application, one or more user interfaces, and / or one or more user interface elements.

[0058] An example of a view is shown below:

[0059]

[0060] In the above view, the application MyApp is described as having a scene (e.g., a region of an environment such as a physical or virtual environment) that includes multiple different and / or separate surfaces (e.g., FirstSurface, SecondSurface, and ThirdSurface). As provided above, the scene is configured such that a virtual cursor is displayed when interacting with MyApp and / or the user interface of MyApp (e.g., cursorbehavior(.enabled)), as long as the user interface element being interacted with does not override the cursorbehavior defined for the scene (e.g., a request from user process 404 to the cursor process 402 to use a virtual cursor with respect to MyApp and / or the user interface of MyApp). Also as provided above, FirstSurface is configured such that the virtual cursor is displayed as described above, SecondSurface is configured such that the virtual cursor is not displayed when interacting with SecondSurface, and ThirdSurface is configured such that the virtual cursor inherits the behavior of the parent node (e.g., in this case, the cursor behavior of the scene). Thus, the above view illustrates that the view of an application can include multiple different user interface elements, each of which is configured with a different cursor behavior that is either explicitly defined or inherited from the parent node. It should be recognized that multiple scenes and / or multiple applications can execute simultaneously and / or result in the display of user interface elements such that each application and / or the user interface of each application is controlled by a different view provided by each application. It should also be recognized that while the above example only includes three ways to control cursor behavior (e.g., enable, disable, and inherit), the cursor process 402 can provide more, fewer, and / or different options such that other applications can further configure the behavior of the virtual cursor.

[0061] At step 408, after receiving a view from user process 404 (e.g., or in response to receiving a view from the user process), the cursor process 402 configures the cursor behavior when displaying the user interface and / or user interface elements corresponding to the view. For example, the cursor process 402 can enable or disable the display of the cursor. For another example, the cursor process 402 can manage the appearance, sensitivity, selection area, and / or speed of the cursor with respect to the user interface and / or user interface elements corresponding to the view.

[0062] At step 410, after configuring the cursor behavior and while one or more user interface elements of the view are being displayed, the user process 402 (and / or the computer system executing the user process 402) detects a first user input. As explained in more detail below, the first user input can be the user's gaze, the user's gesture, the user's hand movement, the pressing of a button of the computer system 300, and / or the rotation of a rotatable input mechanism of the computer system 300 in the direction of, pointing to, and / or corresponding to a user interface element that corresponds to the view.

[0063] At step 412, based on determining that the first user input has been detected (e.g., or in response to detecting the first user input), the cursor process 402 causes the cursor to behave based on the specified cursor behavior (e.g., the cursor behavior specified by the cursor process 402 at step 408). For example, the cursor process 402 can cause the cursor to have a particular appearance, move at a particular speed, and / or have a particular selection area.

[0064] At step 414, after (e.g., or while) the cursor is being displayed, the cursor process 402 detects a second user input. Similar to above, the second user input can be the user's gaze, the user's gesture, the user's hand movement, the pressing of a button of the computer system 300, and / or the rotation of a rotatable input mechanism of the computer system 300 in the direction of, pointing to, and / or corresponding to a user interface element that corresponds to the view.

[0065] At step 416, based on determining that the second user input has been detected (e.g., or in response to detecting the second input), the cursor process 402 causes the cursor to move. The cursor moves based on one or more characteristics of the second input. For example, if the second input is detected at a first speed, the cursor moves at a speed corresponding to the first speed, or if the second input is detected in a first direction (e.g., up, down, and / or sideways), the cursor moves in that first direction.

[0066] At step 418, after the cursor process 402 causes the cursor to move, the cursor process 402 detects a third user input. Similar to above, the third user input can be the user's gaze, the user's gesture, the user's hand movement, the pressing of a button of the computer system 300, and / or the rotation of a rotatable input mechanism of the computer system 300 in the direction of, pointing to, and / or corresponding to a user interface element that corresponds to the view.

[0067] At step 420, after detecting a third user input (e.g., in response to detecting a third user input), cursor process 402 notifies user process 404 of the detection of the third user input. At step 422, after receiving the notification of the detection of the third user input (e.g., or in response to receiving the notification of the detection of the third user input), user process 404 performs an operation based on the third user input. For example, user process 404 may respond to the selection of a user interface element, navigate an Internet browser, and / or initiate the playback of media.

[0068] Figure 5A Illustrates a virtual environment 500 according to some embodiments. The virtual environment 500 is displayed (e.g., generated and / or projected) by a computer system. In some embodiments, the computer system is a head-mounted display device (e.g., a virtual reality device, an augmented reality device, or a mixed reality device). In some embodiments, the computer system is a smart phone, a tablet computer, a fitness tracking device, a desktop computer, a smart watch, and / or a laptop computer. In some embodiments, the virtual environment 500 is displayed (e.g., by the computer system) as overlaid on a physical environment (e.g., a physical environment including the computer system) or a representation of a physical environment captured by one or more cameras communicating with the computer system.

[0069] As Figure 5A Illustrated, the virtual environment 500 includes a store virtual user interface 512 and a build virtual user interface 502. The store virtual user interface 512 corresponds to and / or is provided by a first application being executed by the computer system (e.g., the first application is active). The build virtual user interface 502 corresponds to and / or is provided by a second application also being executed by the computer system (e.g., different from the first application) (e.g., the second application is active). As Figure 5A Illustrated, the store virtual user interface 512 is a single continuous user interface. In contrast, the build virtual user interface 502 includes three discrete (e.g., separate and / or distinct) user interfaces. The title virtual user interface 502a, the design virtual user interface 502b, and the shape virtual user interface 502c are part of the build virtual user interface 502, but there is space between each user interface within the virtual environment 500. The computer system does not display virtual objects between the title virtual user interface 502a, the design virtual user interface 502b, and the shape virtual user interface 502c.

[0070] The first application (e.g., the application corresponding to the store virtual user interface 512) and / or the store virtual user interface 512 are configured not to allow a virtual cursor object to be displayed relative to the store virtual user interface 512. The second application (e.g., the application corresponding to the build virtual user interface 502), the build virtual user interface 502, the title virtual user interface 502a, the design virtual user interface 502b, and / or the shape virtual user interface 502c are configured to allow a virtual cursor to be displayed relative to the build virtual user interface 502, the title virtual user interface 502a, the design virtual user interface 502b, and / or the shape virtual user interface 502c. In some embodiments, the decision as to whether to allow a virtual cursor to be displayed within the first application and / or the second application is a decision made by the developers of the first application and the second application. In other embodiments, the decision as to whether to allow a virtual cursor to be displayed within the first application and / or the second application is a decision made by the user. In some embodiments, after the first application and the second application have been developed, the decision as to whether to allow a virtual cursor to be displayed within the first application and / or the second application is revoked (e.g., by the developer and / or by the user).

[0071] Figure 5A User 508 and gaze 506 are illustrated. User 508 represents the user currently participating in the computer system (e.g., the user is wearing the computer system and / or the user is holding the computer system). Gaze 506 represents the direction of the user's gaze. As illustrated at Figure 5A the location, gaze 506 points to a position between the shape virtual user interface 502c and the design virtual user interface 502b. Thus, at Figure 5A the user's gaze points between the displays of the shape virtual user interface 502c and the design virtual user interface 502b.

[0072] As discussed in more detail below, when it is detected that the user's gaze points to a user interface and when the user interface and / or the application corresponding to the user interface (e.g., by the developer of the application or by the user) is configured to allow the display of a virtual cursor, the computer system displays a virtual cursor on the user interface. However, when the user's gaze is detected at a location where the computer system is not displaying content (e.g., the space between the design virtual user interface 502b and the shape virtual user interface 502c), the computer system does not display a virtual cursor.

[0073] At Figure 5A it is determined that the user's gaze does not point to the user interface being displayed by the computer system. Based on the determination that the user's gaze does not point to the user interface being displayed by the computer system, the computer system does not display a virtual cursor. At Figure 5A after that, the user's gaze moves to the right towards the shape virtual user interface 502c.

[0074] As Figure 5B illustrated, the gaze 506 points to the Shape Virtual User Interface 502c. Thus, at Figure 5B , the user's gaze points to the display of the Shape Virtual User Interface 502c. At Figure 5B , it is determined that the user's gaze points to the Shape Virtual User Interface 502c. As Figure 5B illustrated, because it is determined that the user's gaze points to the Shape Virtual User Interface 502c and because the Shape Virtual User Interface 502c and / or the second application is configured to allow the display of a virtual cursor within the Shape Virtual User Interface 502c, the computer system displays the virtual cursor 518 as overlaid on top of the Shape Virtual User Interface 502c. More specifically, the computer system displays the virtual cursor 518 at a position within the Shape Virtual User Interface 502c corresponding to the user's gaze. In some embodiments, the virtual cursor 518 (e.g., the behavior and / or the appearance of the virtual cursor 518) is managed by the operating system of the computer system (e.g., a system process of the operating system, such as the cursor process as described above), while the Shape Virtual User Interface 5D2c (and / or the content included within the Shape Virtual User Interface 502c) and / or the Design Virtual User Interface 502b (and / or the content included within the Design Virtual User Interface 502b) is managed by the second application. In some embodiments, the cursor process is a system process when the first application and the second application are each executing within a user process. In some embodiments, the computer system performs a selection operation in response to detecting an input corresponding to a selection of a virtual user interface object (e.g., a tap input, a voice command, a swipe input, and / or an air gesture), while the virtual cursor 518 is displayed within the Shape Virtual User Interface 502c. At Figure 5B , the user's gaze moves upward.

[0075] Figure 5C illustrates a hand 520 and a hand direction indicator 524. The hand 520 represents the user's right hand, and the hand direction indicator 524 is a visual aid indicating the direction pointed to by the user's right hand. In some embodiments, the computer system does not display the hand direction indicator 524. As explained in more detail below, the computer system moves the display of the virtual cursor 518 based on the positioning of the user's right hand.

[0076] At Figure 5C , the hand direction indicator 524 is above the previous position of the virtual cursor 518 (e.g., the position of the virtual cursor at Figure 5B ). Thus, at Figure 5C , the user is pointing their hand (e.g., one finger or multiple fingers of the user's hand) to a location within the Shape Virtual User Interface 502c at Figure 5Bat a position above the previous position of the virtual cursor 518 at [location]. At Figure 5C [location], it is determined that the user is pointing directly above the previous position of the virtual cursor 518. At Figure 5C [location], since it is determined that the user is pointing their finger above the previous position of the virtual cursor 518, the computer system moves the virtual cursor 518 to the position where the user is pointing their finger.

[0077] In some embodiments, the computer system tracks a particular hand of the user based on the computer system identifying the particular hand (e.g., the user's right hand or the user's left hand) as the target hand. In some embodiments, the computer system identifies the particular hand as the target hand based on the computer system detecting the particular hand of the user in a particular orientation (e.g., a fist, an open palm, and / or two fingers pointing outwards). In some embodiments, the computer system identifies the particular hand as the target hand based on the computer system detecting the particular hand of the user performing a gesture (e.g., raising the hand, lowering the hand, rotating the hand, a pinch gesture, and / or a pinch release gesture). In some embodiments, when the computer system takes the user's right hand as the target / tracks the user's right hand, the computer system detects the left hand of the user performing a gesture and / or being positioned in a particular orientation. In some embodiments, in response to detecting that the left hand of the user has performed a gesture or is positioned in a particular orientation, the computer system takes the left hand of the user as the target / tracks the left hand of the user and stops taking the right hand of the user as the target / tracking the right hand of the user.

[0078] In some embodiments, the computer system moves the virtual cursor 518 based on the movement of different parts of the user's body (e.g., the user's head, the user's feet, the user's arms, and / or the user's torso). In some embodiments, the computer moves the virtual cursor 518 based on the movement of the user's hand and different parts of the user's body (e.g., the user's head, the user's feet, the user's arms, and / or the user's torso).

[0079] As Figure 5C illustrated, the gaze 506 points to the position of the virtual user interface 502c in the same shape as the position in the direction in which the user is pointing their finger (e.g., above the previous position of the virtual cursor 518 (e.g., the position of the virtual cursor at Figure 5B [location])). At Figure 5CAt this point, it is determined that both the user's gaze and the user's hand point in a common direction (e.g., above the previous position of the virtual cursor 518). Since it is determined that both the user's gaze and the user's hand point in a common direction, the computer system moves the virtual cursor 518 at a faster rate than when the directions of the user's gaze and the user's hand do not point in a common direction. For example, if the user's gaze points downward and the user's hand points upward, the computer system will move the virtual cursor 518 upward at a slower speed than when both the user's gaze and the user's hand point upward. After Figure 5C the user's gaze and the user's hand move to the left.

[0080] As Figure 5D illustrated, the gaze 506 and the hand direction indicator 524 are positioned between the design virtual user interface 502b and the shape virtual user interface 502c. More specifically, at Figure 5D this point, both the gaze 506 and the hand direction indicator 524 point to a location where the computer system does not display content (e.g., of a second application).

[0081] As Figure 5D illustrated, the computer system continues to display the virtual cursor within (e.g., overlaid on) the shape virtual user interface 502c (e.g., at the same position of the virtual cursor at Figure 5C this point). As explained above, when displaying the virtual cursor 418, the computer system moves the display of the virtual cursor 518 based on the positioning of the user's hand. However, the computer system does not move the virtual cursor 518 to a location where the computer system does not display content. Thus, at Figure 5D this point, since the computer system does not display content between the design virtual user interface 502b and the shape virtual user interface 502c, the computer system does not move the display of the virtual cursor 518 between the design virtual user interface 502b and the shape virtual user interface 502c. In some embodiments, when it is determined that the user's hand is positioned at a location where the computer system does not display content, the computer system stops displaying the virtual cursor 518. In some embodiments, based on determining that the user's hand is positioned at a location where the computer system does not display content, the computer system moves the virtual cursor 518 to the edge of the user interface where the virtual cursor 518 is displayed (e.g., the edge closest to the direction of the user's hand). In some embodiments, based on determining that the user's finger points to a location where the computer system does not display content, the computer system displays the virtual cursor 518 at the location where the computer system does not display content. After Figure 5D the user's hand moves to the left while the user's gaze remains in the same position.

[0082] As Figure 5EAs illustrated, the representation of the gaze 506 is positioned between the design virtual user interface 502b and the shape virtual user interface 502c, and the hand direction indicator 524 is positioned on the design virtual user interface 502b. Thus, at Figure 5E the user's right finger points to the design virtual user interface 502b, and the user's gaze points between the design virtual user interface 502b and the shape virtual user interface 502c. At Figure 5E it is determined that the user's finger points to the design virtual user interface 502b. Because it is determined that the user's finger points to the design virtual user interface 502b, the computer system moves the virtual cursor 518 to be positioned within the design virtual user interface 502b (e.g., overlaid on the design virtual user interface). That is, the computer system moves the virtual cursor 518 based on determining that the user's finger points to a user interface that is displayed by the computer system and corresponds to an application that permits the display of the virtual cursor 518. In some embodiments, as part of moving the virtual cursor 518, the computer system stops displaying the virtual cursor 518 within the shape virtual user interface 502c. After Figure 5E the user's gaze and the user's hand move left.

[0083] As Figure 5F illustrated, the gaze 506 and the hand direction indicator 524 point to the store virtual user interface 512. Thus, at Figure 5F the user's gaze and the user's finger point to the store virtual user interface 512. As Figure 5F illustrated, the computer system continues to display the virtual cursor 518 on the design virtual user interface 502b (e.g., within the design virtual user interface). As explained above, the store virtual user interface 512 is configured not to permit the display of the virtual cursor 518. Thus, at Figure 5F although the user's finger points to the store virtual user interface 512, the computer system does not display the virtual cursor 518 within the store virtual user interface 512. In some embodiments, based on determining that the user's finger points to the store virtual user interface 512, the computer system stops (e.g., within the design virtual user interface 502b) displaying the virtual cursor 518. In some embodiments, based on determining that the user's finger points to the store virtual user interface 512, the computer system moves the virtual cursor 518 to the boundary of the construction virtual user interface 502 that is closest to the store virtual user interface 512.

[0084] Figure 6 is a flowchart illustrating a method (e.g., method 600) for managing the behavior of a cursor according to some embodiments. Some operations in method 600 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0085] As described below, method 600 provides an intuitive way to manage the behavior of a cursor. Method 600 reduces the cognitive burden on the user, thereby creating a more efficient human-machine interface. For battery-powered computing devices, enabling the user to interact with such devices faster and more efficiently saves power and increases the time between battery charges.

[0086] In some embodiments, method 600 is performed at a first application (and / or application platform) (e.g., a first type of application, a system application, a system process, a first process, a cursor process, a cursor behavior process, and / or system software) executing on a computer system (e.g., a device, a public device, a personal device, a user device, and / or a head-mounted display (HMD)).

[0087] The first application (e.g., via an application programming interface (API)) receives (602) from a second application different from the first application (e.g., a second type of application different from the first type of application, a user application, a user process, a second process different from the first process, and / or application software) a first request (e.g., as part of a user interface view corresponding to the second application) to use (e.g., evoke, elicit, and / or facilitate) a corresponding cursor (and / or pointer) behavior (e.g., tuning, cursor tuning, setting, characteristic, property, and / or attribute) on (e.g., on and / or within) a first virtual object (e.g., a user interface, a user interface element, a visual virtual object, a virtual surface, a two-dimensional object, a three-dimensional object, a planar surface, a surface generated by a virtual device (e.g., a head-mounted device (HMD), an augmented reality device, and / or a virtual reality device), a surface displayed as overlaid on a representation of a physical environment and / or on a partially transparent surface, and / or a non-tangible surface).

[0088] The combination (604) receives a first request to use a corresponding cursor behavior (e.g., with respect to a first virtual object (e.g., while providing (e.g., displaying and / or managing) the first virtual object)), and in response to determining that the corresponding cursor behavior is a first cursor behavior (e.g., enabled, selected, active, authorized, and / or a particular set of one or more cursor behaviors) (e.g., in response to the reception and / or after the reception), the first application causes (606) the cursor (e.g., a pointer, a graphical representation of a hand, and / or a spatial cursor) (e.g., with respect to the first virtual object (and / or the content included within the first virtual object) (and / or when the user input points to the first virtual object)) to operate in a first manner (e.g., move, select, and / or have a particular visual appearance). In some embodiments, the first application and / or the computer system displays the cursor via a display generation component of the computer system. In some embodiments, the cursor operating in the first manner includes: moving at a particular speed and / or in a particular direction. In some embodiments, the cursor operating in the first manner includes: moving and / or selecting with a particular area and / or sensitivity.

[0089] The combination (604) receives a first request to use a corresponding cursor behavior and in response to determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior (e.g., disabled), the first application causes (608) the cursor (e.g., with respect to the first virtual object) not to be used. In some embodiments, the behavior of the cursor depends on what content is included within the first virtual object. In some embodiments, the behavior of the cursor is user-specific. In some embodiments, the behavior of the cursor is application-specific.

[0090] In some embodiments, a computer system communicates with (e.g., via wired communication and / or wireless communication) and / or includes a display generation component (e.g., a display screen, a projector, and / or a touch-sensitive display) and one or more input devices (e.g., a camera, a depth sensor, a microphone, a hardware input mechanism, a rotatable input mechanism, a heart monitor, a temperature sensor, and / or a touch-sensitive surface). In some embodiments, after receiving a first request to use a corresponding cursor behavior (e.g., with respect to a first virtual object), a first application detects, via one or more input devices, a set of one or more user inputs (e.g., a gaze, a tap input, a swipe input, a voice command, a rotation of a rotatable input mechanism, and / or an air gesture) (e.g., receives an indication of the set of one or more user inputs). In some embodiments, the first application itself detects the set of one or more user inputs. In some embodiments, the first application itself does not detect the set of one or more user inputs, but instead receives an indication of the set of one or more user inputs from another application and / or process configured to detect user inputs via one or more input devices. In some embodiments, in response to detecting the set of one or more user inputs and based on determining that the set of one or more user inputs (and / or at least one input in the set of one or more user inputs, such as one or more final inputs in the set of one or more inputs) corresponds to (and / or points to) the first virtual object (e.g., a user interface, a user interface element, a visual virtual object, a virtual surface, a two-dimensional object, a three-dimensional object, a planar surface, a surface generated by a virtual device (e.g., a head-mounted device (HMD), an augmented reality device, and / or a virtual reality device), a surface shown as overlaid on a representation of a physical environment and / or on a partially transparent surface, and / or a non-tangible surface) (e.g., the first request is with respect to the first virtual object) (e.g., the set of one or more inputs includes an input pointing to the first virtual object, such as looking at the first virtual object, targeting the first virtual object, and / or interacting with the first virtual object, the set of one or more inputs corresponds to a selection of the first virtual object, the set of one or more inputs corresponds to a selection of content included in the first virtual object, and / or the set of one or more inputs corresponds to a request to change the appearance of the first virtual object and / or the content included in the first virtual object) and determining that the corresponding cursor behavior is a first cursor behavior, the first application continues to cause the cursor (e.g., with respect to the first virtual object) to operate in a first manner (and / or displays, via the display generation component, the cursor (e.g., within the first virtual object, associated with the first virtual object, and / or at a location corresponding to the first virtual object)). In some embodiments, the cursor is not displayed until the set of one or more inputs is detected. In some embodiments, the cursor is not displayed until an input corresponding to the first virtual object in the set of one or more inputs is detected.In some embodiments, in response to detecting the one or more user inputs of the set and based on determining that the one or more user inputs of the set correspond to a first virtual object and determining that the corresponding cursor behavior is a second cursor behavior, the first application forgoes displaying the cursor via the display generation component (and / or forgoes using the cursor relative to the first virtual object). In some embodiments, in response to detecting the one or more inputs of the set and based on determining that the one or more inputs of the set correspond to a first virtual object, the first application and / or the computer system displays the cursor via the display generation component.

[0091] In some embodiments, detecting the one or more inputs of the set includes: detecting (e.g., identifying and / or recognizing) the movement (e.g., lateral movement and / or rotational movement) (e.g., the one or more body parts of the set are lifted, lowered, rotated, and / or pointed to a location such as a location corresponding to the first virtual object) of a set of one or more body parts (e.g., hands, limbs, head, feet, fingers, and / or toes) of the user (e.g., towards the first virtual object, within the first virtual object, and / or at a location corresponding to the first virtual object) via one or more input devices. In some embodiments, different body parts included in the set of one or more body parts move in different ways. In some embodiments, different body parts included in the set of one or more body parts move in the same way. In some embodiments, continuing to cause the cursor to operate relative to the first virtual object in a first manner is based on one or more characteristics (e.g., direction after movement, speed, acceleration, and / or length of time pointing to a location) of the movement of the set of one or more body parts. In some embodiments, detecting the one or more inputs of the set includes: detecting (e.g., identifying and / or recognizing) the movement (e.g., lateral movement and / or rotational movement) of an electronic device and / or another physical object that is not part of the user.

[0092] In some embodiments, detecting movement of the one or more body parts of the user includes: determining that the first body part of the user (e.g., eye, hand, limb, head, foot, finger, and / or toe) is not detected (e.g., by the input device and / or by an external computer system) as performing a gesture (e.g., pinch gesture, unpinch gesture, lifting a leg, lifting a foot, waving a hand, lifting a hand, and / or air tap) and determining that the second body part of the user that is different from the first body part (e.g., different from the first body part of the user) (e.g., eye, hand, limb, head, foot, finger, and / or toe) is not detected (e.g., by the input device and / or by an external computer system) as performing a gesture, before detecting movement of the one or more body parts of the user (e.g., immediately before detecting movement of the one or more body parts of the user or within a predetermined threshold amount of time before detecting movement of the one or more body parts of the user (e.g., 1 second to 300 seconds)), detecting movement of the first body part via one or more input devices (e.g., without detecting and / or monitoring movement of the second body part and / or while ignoring movement of the second body part) (and / or defining the first body part rather than the second body part as the primary body part for cursor movement) (e.g., depending on which body part performs the gesture determines which body part is used to detect movement, such as movement of another body part is not used to determine cursor movement); and determining that the second body part is detected (e.g., by the input device and / or by an external computer system) as performing a gesture and determining that the first body part is not detected as performing a gesture, before detecting movement of the one or more body parts of the user (e.g., immediately before detecting movement of the one or more body parts of the user or within a predetermined threshold amount of time before detecting movement of the one or more body parts of the user), detecting movement of the second body part via one or more input devices (e.g., without detecting and / or monitoring movement of the first body part and / or while ignoring movement of the first body part) (and / or defining the second body part rather than the first body part as the primary body part for cursor movement). In some embodiments, the movement and gesture of the one or more body parts are the same or different. In some embodiments, the one or more body parts include more body parts than the first body part of the user and / or the second body part of the user.

[0093] In some embodiments, after detecting movement of a user's first body part (e.g., immediately after detecting movement of the user's first body part or within a threshold amount of time (e.g., from 1 second to 300 seconds) after detecting movement of the user's first body part) (e.g., after detecting that the first body part performs a gesture) (and / or when the first body part is defined as the primary body part for cursor movement), a first application detects, via one or more input devices, a gesture performed by a second body part of the user. In some embodiments, the one or more input devices detect that the second body part performs another gesture different from the gesture. In some embodiments, after detecting that the second body part of the user performs a gesture (e.g., immediately after detecting that the second body part of the user performs a gesture or within a threshold amount of time (e.g., from 1 second to 300 seconds) after detecting that the second body part of the user performs a gesture) (and / or without detecting, via the one or more input devices, that the first body part of the user performs a gesture), the first application detects movement (e.g., lateral movement and / or rotational movement) of the second body part of the user (e.g., and a third body part of the user and / or the one or more body parts of the group) (e.g., the second body part moves left, right, up, down, clockwise, and / or counterclockwise) (e.g., without detecting and / or monitoring movement of the first body part of the user and / or while ignoring movement of the first body part of the user). In some embodiments, in response to detecting movement of the second body part of the user (and / or without detecting and / or monitoring movement of the first body part of the user and / or while ignoring movement of the first body part of the user), the first application continues to cause the cursor (e.g., relative to a first virtual object) to operate in a first manner (and / or continues and / or maintains displaying the cursor via a display generation component) (e.g., based on movement of the second body part of the user and not based on movement of the first body part of the user). In some embodiments, the first application and / or the computer system do not perform an operation with respect to the cursor in response to detecting movement of the first body part of the user after detecting that the second body part of the user performs a gesture (e.g., after detecting that the second body part of the user performs a gesture without detecting that the first body part of the user performs a gesture, ignore movement of the first body part of the user).

[0094] In some embodiments, detecting movement of the one or more body parts of the user includes: determining that a first body part of the user (e.g., an eye, a hand, a limb, a head, a foot, a finger, and / or a toe) is detected in a first orientation before detecting movement of the one or more body parts of the user (e.g., immediately before detecting movement of the one or more body parts of the user or within a predetermined threshold amount of time before detecting movement of the one or more body parts of the user (e.g., from 1 second to 300 seconds)) (e.g., the first body part is in front of the user, the first body part is behind the user, the first body part is pointing upward, the first body part is pointing downward, the first body part is pointing to the side, it is detected that the first body part has multiple fingers pointing straight out, and / or it is detected that the first body part is creating a shape (e.g., a square and / or a triangle)) and determining that a second body part of the user different from the first body part (e.g., an eye, a hand, a limb, a head, a foot, a finger, and / or a toe) is not detected in the first orientation, detecting movement of the first body part via one or more input devices (e.g., without detecting and / or monitoring movement of the second body part and / or while ignoring movement of the second body part); and determining that a second body part is detected in the first orientation and determining that the first body part is not detected in the first orientation before detecting movement of the one or more body parts of the user (e.g., immediately before detecting movement of the one or more body parts of the user or within a predetermined threshold amount of time before detecting movement of the one or more body parts of the user), detecting movement of the second body part via one or more input devices (e.g., without detecting and / or monitoring movement of the first body part and / or while ignoring movement of the first body part). In some embodiments, the first orientation is user-specific and / or application-specific. In some embodiments, according to determining that both the first body part and the second body part are detected in the first orientation before detecting movement of the one or more body parts of the user, detecting movement of the one or more body parts of the user includes: detecting movement of the first body part and the second body part. In some embodiments, according to determining that both the first body part and the second body part are detected in the first orientation before detecting movement of the one or more body parts of the user, detecting movement of the one or more body parts of the user includes: before detecting movement of the one or more body parts of the user, detecting movement of any body part that is first detected in the first orientation. In some embodiments, according to determining that both the first body part and the second body part are detected in the first orientation before detecting movement of the one or more body parts of the user, detecting movement of the one or more body parts of the user includes: before detecting movement of the one or more body parts of the user, detecting movement of any body part that is last detected in the first orientation.In some embodiments, detecting movement of the one or more body parts of the group includes, based on determining that both a first body part and a second body part are detected in a first orientation before detecting movement of the one or more body parts of the group: detecting movement of any body part detected in the first orientation for a longer time period before detecting movement of the one or more body parts of the group.

[0095] In some embodiments, detecting the one or more inputs of the group includes: detecting a user's gaze via one or more input devices (e.g., one or more cameras). In some embodiments, the user's gaze is detected for a predetermined time period (e.g., from 1 second to 30 seconds). In some embodiments, the user's detected gaze is static. In some embodiments, the user's detected gaze is moving. In some embodiments, the gaze pertains to a single eye of the user. In some embodiments, the gaze pertains to both eyes of the user.

[0096] In some embodiments, continuing to cause the cursor (e.g., relative to a first virtual object) to operate in a first manner includes: displaying the cursor via a display generation component. In some embodiments, when the cursor is displayed, a first application detects, via one or more input devices, a group of one or more inputs (e.g., hand movement, user's gaze, voice command, and / or foot movement) corresponding to a request to move the cursor. In some embodiments, in response to detecting the group of one or more inputs corresponding to the request to move the cursor and based on determining that the group of one or more inputs includes movement of a body part of the user (e.g., hand, limb, head, foot, finger, and / or toe) in a first direction (e.g., a lateral direction (e.g., right, left, up, and / or down) and / or a rotational direction (e.g., clockwise and / or counterclockwise)) and no detected user gaze in the first direction, the first application moves the cursor in the first direction at a first speed. In some embodiments, in response to detecting the group of one or more inputs corresponding to the request to move the cursor and based on determining that the group of one or more inputs includes the user's gaze in the first direction (e.g., the user's gaze moves in the first direction and / or the user's gaze points to an endpoint of the first direction) (e.g., detecting the user's gaze for longer than a predetermined time period (e.g., from 1 second to 10 seconds)) and movement of a body part in the first direction, the first application moves the cursor in the first direction at a second speed greater than the first speed. In some embodiments, the user's gaze and movement of the user's body part are detected simultaneously. In some embodiments, the user's gaze and movement of the user's body are detected at different times. In some embodiments, the user's gaze and movement of the user's body are detected over different durations.

[0097] In some embodiments, continuing to operate the cursor (e.g., relative to the first virtual object) in a first manner includes: displaying the cursor via a display generation component. In some embodiments, when the cursor is displayed, the first application detects, via one or more input devices, a set of one or more inputs corresponding to a request to move the cursor (e.g., hand movement, user's gaze, foot movement, head movement, and / or voice command). In some embodiments, in response to detecting the set of one or more inputs corresponding to the request to move the cursor and based on determining that the set of one or more inputs includes the user's gaze in a first direction (e.g., left, right, up, and / or down) (e.g., pointing in the first direction) and movement of the user's body part (e.g., hand, limb, head, foot, finger, and / or toe) in the first direction (e.g., a lateral direction (e.g., right, left, up, and / or down) and / or a rotational direction (e.g., clockwise and / or counterclockwise)) for a predefined period of time (e.g., 1 second to 10 seconds), the first application moves the cursor in the first direction at a first speed. In some embodiments, in response to detecting the set of one or more inputs corresponding to the request to move the cursor and based on determining that the set of one or more inputs includes movement of the user's body part in the first direction and the user's gaze in a second direction different from the first direction (e.g., in some embodiments opposite to the first direction) (e.g., the first direction is left and the second direction is right, or the first direction is up and the second direction is down), the first application moves the cursor in the first direction at a second speed less than the first speed. In some embodiments, the cursor is moved at different speeds based on the magnitude of the movement of the body part.

[0098] In some embodiments, detecting the set of one or more user inputs includes: detecting the user's gaze via one or more input devices (e.g., detecting that the user's gaze has been for a time amount greater than a time threshold (e.g., 1 second to 15 seconds), and the user's gaze is directed at a first position of the first virtual object (e.g., an edge of the first virtual object, a center of the first virtual object, a top of the first virtual object, and / or a bottom of the first virtual object)). In some embodiments, in response to detecting the set of one or more user inputs, the first application displays the cursor at the first position of the first virtual object via the display generation component. In some embodiments, the cursor overlays the first virtual object. In some embodiments, the cursor remains displayed at the first position of the first virtual object until a subsequent input is detected. In some embodiments, when the user's gaze is not detected at the position of the first virtual object, the cursor is displayed at a position not corresponding to the first virtual object.

[0099] In some embodiments, when a cursor is displayed at a first location of a first virtual object, a first application detects, via an input device, a user's gaze directed to a second location of the first virtual object that is different from the first location (e.g., detecting that the user's gaze has been directed for an amount of time greater than a time threshold (e.g., 1 second to 15 seconds)). In some embodiments, in response to detecting the user's gaze directed to the second location of the first virtual object, the first application continues to display the cursor at the first location of the first virtual object via a display component. In some embodiments, in response to detecting the user's gaze at the second location of the first virtual object, the first application and / or a computer system moves the cursor from the first location of the first virtual object to the second location of the first virtual object via the display component.

[0100] In some embodiments, in combination with receiving a first request to use a corresponding behavior (e.g., with respect to the first virtual object) and based on determining that the corresponding cursor behavior is a third cursor behavior that is different from a first cursor behavior and a second cursor behavior (e.g., enabled, selected, active, authorized, and / or a particular set of one or more cursor behaviors), the first application causes the cursor (e.g., with respect to the first virtual object (and / or content included within the first virtual object) (and / or when user input is directed to the first virtual object)) to operate in a second manner that is different from the first manner (e.g., move, select, and / or have a particular visual appearance). In some embodiments, when the cursor operates in the second manner, the cursor is used (e.g., by the user and / or by the computer system).

[0101] In some embodiments, the corresponding cursor behavior is a first corresponding cursor behavior. In some embodiments, in conjunction with receiving a first request to use the corresponding cursor behavior (e.g., with respect to a first virtual object) (e.g., before, simultaneously with, and / or after the receipt), the first application (e.g., from a second application or another application different from the first and second applications) receives a second request to use (e.g., evoke, elicit, and / or facilitate) a second corresponding cursor (and / or pointer) behavior (e.g., tuning, cursor tuning, setting, characteristic, attribute, and / or property) different from the first corresponding cursor behavior (e.g., with respect to a second virtual object different from the first virtual object (e.g., a user interface, a user interface element, a visual virtual object, a virtual surface, a two-dimensional object, a three-dimensional object, a planar surface, a surface generated by a virtual device (e.g., a head-mounted device (HMD), an augmented reality device, and / or a virtual reality device), a surface displayed as overlaying a representation of a physical environment and / or on a partially transparent surface, and / or a non-tangible surface) (e.g., on and / or within the second virtual object)). In some embodiments, in conjunction with receiving a second request to use the second corresponding cursor behavior (e.g., with respect to the second virtual object (e.g., while simultaneously providing (e.g., displaying and / or managing) the second virtual object)) and based on determining that the first corresponding behavior is the second cursor behavior (and / or the second corresponding behavior is the first cursor behavior) (e.g., in response to and / or after the receipt), the first application causes the cursor to operate in a first manner with respect to the second virtual object (e.g., the second request corresponds to the second virtual object), while causing the cursor not to be used with respect to the first virtual object. In some embodiments, in conjunction with receiving a second request to use the second corresponding cursor behavior and based on determining that the first corresponding behavior is the first cursor behavior (and / or the second corresponding behavior is the second cursor behavior), the first application causes the cursor not to be used with respect to the second virtual object, while causing the cursor to operate in a first manner with respect to the first virtual object.

[0102] In some embodiments, a computer system communicates with (e.g., wirelessly and / or wired) and / or includes a display generation component (e.g., a display screen, a projector, and / or a touch-sensitive display) and one or more input devices (e.g., a camera, a depth sensor, a microphone, a hardware input mechanism, a rotatable input mechanism, a heart monitor, a temperature sensor, and / or a touch-sensitive surface). In some embodiments, after receiving a first request to use a corresponding cursor behavior (e.g., with respect to a first virtual object) and / or after receiving a second request to use a second corresponding cursor behavior (e.g., with respect to a second virtual object), a first application detects a first set of one or more user inputs (e.g., a gaze, a tap input, a swipe input, a voice command, a rotation of a rotatable input mechanism, and / or an air gesture) via one or more input devices. In some embodiments, in response to detecting the first set of one or more user inputs and based on determining that the first set of one or more user inputs (and / or at least one input in the first set of one or more user inputs, such as one or more final inputs in the first set of one or more inputs) corresponds to (and / or points to) a second virtual object (e.g., a user interface, a user interface element, a visual virtual object, a virtual surface, a two-dimensional object, a three-dimensional object, a planar surface, a surface generated by a virtual device (e.g., a head-mounted device (HMD), an augmented reality device, and / or a virtual reality device), a surface shown as overlaid on a representation of a physical environment and / or on a partially transparent surface, and / or a non-tangible surface) of a third application (e.g., a user application, a user process, and / or an application software) (e.g., the first set of one or more inputs includes an input pointing to the second virtual object, such as looking at the second virtual object, targeting the second virtual object, and / or interacting with the second virtual object, the first set of one or more inputs corresponds to a selection of the second virtual object, the first set of one or more inputs corresponds to a selection of content included in the second virtual object, and / or the first set of one or more inputs corresponds to a request to change the appearance of the second virtual object and / or the content included in the second virtual object) (e.g., via an application programming interface (API)), the first application causes the cursor to operate in a second manner (e.g., move, select, have a specific visual appearance, not be used, and / or not be displayed). In some embodiments, the first manner and the second manner are the same. In some embodiments, the second manner is different from the first manner. In some embodiments, the first manner is specific to a second application, and the second manner is specific to a third application.In some embodiments, in response to detecting a first set of one or more user inputs and based on determining that the first set of one or more inputs corresponds to a third virtual object that is different from a second virtual object for a fourth application that is different from a third application (e.g., a user interface, a user interface element, a visual virtual object, a virtual surface, a two-dimensional object, a three-dimensional object, a planar surface, a surface generated by a virtual device (e.g., a head-mounted device (HMD), an augmented reality device, and / or a virtual reality device), a surface that is displayed as overlaying a representation of a physical environment and / or on a partially transparent surface, and / or a non-tangible surface) (e.g., the first set of one or more inputs includes an input that points to the third virtual object, such as looking at the third virtual object, targeting the third virtual object, and / or interacting with the third virtual object, the first set of one or more inputs includes a selection of the third virtual object, the first set of one or more inputs includes a selection of content included in the third virtual object, and / or the first set of one or more inputs corresponds to a request to change the appearance of the third virtual object and / or the content included in the third virtual object), a first application causes a cursor to operate in a third manner that is different from a second manner (e.g., and / or is distinguishable from or the same as a first manner). In some embodiments, the second virtual object and the third virtual object are of the same type of virtual object or different types of virtual objects. In some embodiments, the third manner and the first manner are the same. In some embodiments, the third manner and the first manner are different. In some embodiments, the first manner is specific to a second application, and the third manner is specific to a fourth application.

[0103] In some embodiments, before detecting the first set of one or more user inputs, the first application receives from a third application a second request to use (e.g., evoke, elicit, and / or facilitate) a second corresponding cursor behavior (e.g., as part of a user interface view corresponding to the second application) with respect to, e.g., a second virtual object (e.g., while providing (e.g., displaying and / or managing) the second virtual object), wherein causing the cursor to operate in the second manner occurs based on determining that the second corresponding cursor behavior is a third cursor behavior. In some embodiments, before detecting the first set of one or more user inputs, the first application receives from a fourth application a third request to use (e.g., evoke, elicit, and / or facilitate) a third corresponding cursor behavior (e.g., as part of a user interface view corresponding to the second application) with respect to, e.g., a third virtual object (e.g., while providing (e.g., displaying and / or managing) the second virtual object), wherein causing the cursor to operate in the third manner occurs based on determining that the third corresponding cursor behavior is a fourth cursor behavior that is different from the third cursor behavior.

[0104] In some embodiments, a computer system communicates with (e.g., wirelessly communicates and / or communicates via wire) and / or includes one or more input devices (e.g., a camera, a depth sensor, a microphone, a hardware input mechanism, a rotatable input mechanism, a heart monitor, a temperature sensor, and / or a touch-sensitive surface). In some embodiments, when causing a cursor (e.g., relative to a first virtual object) to operate in a first manner, a first application receives, from a second application, a second request to use (e.g., evoke, elicit, and / or facilitate) the cursor in a second manner (e.g., move, select, have a particular visual appearance, not be used and / or not be displayed) (e.g., relative to the first virtual object) that is different from the first manner (e.g., as part of a user interface view corresponding to the second application). In some embodiments, in response to receiving the second request to use the cursor in the second manner, the first application causes (e.g., enables) the cursor (e.g., relative to the first virtual object) to operate in the second manner (e.g., and causes the cursor not to operate in the first manner). In some embodiments, in response to receiving the second request to use the cursor in the second manner, the first application and / or the computer system causes the cursor (e.g., simultaneously or sequentially) to operate in the first manner and the second manner. In some embodiments, when causing the cursor to operate in the second manner relative to the first virtual object, the first application receives, from the second application, a third request to use (e.g., evoke, elicit, and / or facilitate) the cursor in the first manner relative to the first virtual object (e.g., as part of a user interface view corresponding to the second application). In some embodiments, in response to receiving the third request to use the cursor in the first manner, the first application causes (e.g., enables) the cursor to operate in the first manner relative to the first virtual object (e.g., and causes the cursor not to operate in the second manner).

[0105] In some embodiments, a computer system communicates with (e.g., via wired communication and / or wireless communication) and / or includes a display generation component (e.g., a display screen, a projector, and / or a touch-sensitive display) and one or more input devices (e.g., a camera, a depth sensor, a microphone, a hardware input mechanism, a rotatable input mechanism, a heart monitor, a temperature sensor, and / or a touch-sensitive surface). In some embodiments, after receiving a first request to use a corresponding cursor behavior (e.g., relative to a first virtual object), a first application detects user input (e.g., a gaze, a tap input, a swipe input, a voice command, a rotation of a rotatable input mechanism, and / or an air gesture) via one or more input devices. In some embodiments, in response to detecting the user input (and / or based on determining that the user input corresponds to and / or points to the first virtual object) (and / or based on determining that the corresponding cursor behavior is a first cursor behavior), the first application displays a cursor via the display generation component (and / or causes (e.g., enables, evokes, and / or elicits) the cursor to be displayed relative to the first virtual object (e.g., in a first manner and / or a second manner)).

[0106] In some embodiments, a computer system communicates with (e.g., wirelessly communicates and / or communicates via wire) and / or includes a display generation component (e.g., a display screen, a projector, and / or a touch-sensitive display) and one or more input devices (e.g., a camera, a depth sensor, a microphone, a hardware input mechanism, a rotatable input mechanism, a heart monitor, a temperature sensor, and / or a touch-sensitive surface). In some embodiments, when a cursor is displayed via the display generation component (e.g., at a location within a first virtual object and / or corresponding to a first virtual object) (and / or when causing the cursor to operate in a first manner), a first application detects, via one or more input devices, a request to move the cursor to a corresponding location (e.g., a virtual location or a physical location) (e.g., an air gesture, a voice command, a gaze, a pinch gesture, an unpinch gesture, and / or an air swipe). In some embodiments, in response to detecting a request to move the cursor to a corresponding location and based on determining that the corresponding location does not correspond to the first virtual object (e.g., the first virtual object is not displayed and / or is not included at the corresponding location) (and / or does not correspond to any virtual object) (and / or determining that the corresponding location corresponds to blank space external to the first virtual object) (and / or determining that the corresponding location corresponds to a location external to the first virtual object), the first application abandons moving the cursor to the corresponding location (and / or abandons displaying the cursor via the display generation component) (and / or maintains the display of the cursor at a location corresponding to the first virtual object (e.g., the location where the cursor is located when the request is detected and / or an edge of the first virtual object in the direction of the corresponding location)). In some embodiments, in response to detecting a request to move the cursor to a corresponding location and based on determining that the corresponding location corresponds to the first virtual object (e.g., and / or the content of the first virtual object) (e.g., the first virtual object is displayed and / or projected at the corresponding location), the first application displays the cursor at the corresponding location via the display component. In some embodiments, in response to detecting a request to move the cursor to a corresponding location and based on determining that the corresponding location does not correspond to a virtual object that enables the cursor (e.g., to operate in a first manner or another manner different from the first manner) (e.g., the first application does not cause the cursor to operate in a first manner relative to the virtual object corresponding to the corresponding location), the first application and / or the computer system stops displaying the cursor via the display generation component. In some embodiments, in response to detecting a request to move the cursor to a corresponding location and based on determining that the corresponding location corresponds to another virtual object different from the first virtual object (and / or determining that the other virtual object enables the cursor (e.g., to operate in a first manner or another manner different from the first manner) (e.g., the first application is causing the cursor to operate in a first manner relative to the other virtual object), the first application and / or the computer system displays the cursor at the corresponding location via the display generation component).

[0107] In some embodiments, the first application is a system process (e.g., initiated and / or managed by the operating system of the computer system and / or corresponding to the operating system of the computer system) that is responsible for managing one or more resources of the computer system (e.g., processors and / or memory). In some embodiments, the second application is a user process (e.g., a process initiated and / or created by a user) that does not correspond to the operating system of the computer system.

[0108] In some embodiments, the behavior of the cursor (and / or relative to the cursor) (e.g., cursor behavior, display behavior, and / or interaction behavior) (e.g., how the cursor moves and / or how operations corresponding to the cursor are performed) is managed (e.g., dominated and / or controlled) by the first application (e.g., the cursor is managed by the first application) (e.g., rather than by the second application). In some embodiments, the behavior of the first virtual object (and / or relative to the first virtual object) (e.g., the content included in the first virtual object, the display of the first virtual object, the interaction with the first virtual object space orientation of the first virtual object, and / or the size of the first virtual object) (e.g., display behavior and / or interaction behavior) is managed by the second application (e.g., the first virtual object is managed by the second application) (e.g., rather than by the first application). In some embodiments, a common application manages both the behavior of the cursor and the behavior of the first virtual object.

[0109] In some embodiments, a first request to use a corresponding cursor behavior (e.g., relative to the first virtual object) is included in a view (e.g., a declarative view) of the user interface corresponding to the second application (e.g., the content displayed for the user interface in one or more different states) (e.g., a stateful and variable object instance). In some embodiments, the view of the user interface includes a definition of the first virtual object (e.g., one or more characteristics and / or properties of the first virtual object, such as how the first virtual object is displayed and / or how to interact with the first virtual object).

[0110] In some embodiments, the corresponding cursor behavior is a first corresponding cursor behavior. In some embodiments, a view of the user interface includes a definition of another virtual object different from the first virtual object (e.g., a user interface, a user interface element, a visual virtual object, a virtual surface, a two-dimensional object, a three-dimensional object, a planar surface, a surface generated by a virtual device (e.g., a head-mounted device (HMD), an augmented reality device, and / or a virtual reality device), a surface displayed as overlaying a representation of a physical environment and / or on a partially transparent surface, and / or a non-tangible surface). In some embodiments, the view includes a request to use (e.g., evoke, elicit, and / or facilitate) a second corresponding cursor (and / or pointer) behavior (e.g., tuning, cursor tuning, setting, characteristic, property, and / or attribute) with respect to another virtual object (e.g., on and / or within the other virtual object). In some embodiments, the second corresponding cursor behavior is different from the first corresponding cursor behavior.

[0111] In some embodiments, the request to use a second corresponding cursor behavior with respect to another virtual object corresponds to a request to inherit from (and / or be dependent on) the parent node of the other virtual object within the view (e.g., the cursor behavior with respect to the other virtual object is not defined within the node corresponding to the other virtual object (e.g., of the view), but is inherited from a parent node (e.g., different from the node corresponding to the other virtual object)) (e.g., the cursor behavior with respect to the other virtual object is configured to change according to the state of the parent node). In some embodiments, the first request to use a first corresponding cursor behavior (e.g., with respect to the first virtual object) does not correspond to a request to inherit from the parent node of the first virtual object within the view (e.g., the first request defines the first corresponding cursor behavior without depending on and / or inheriting from another node of the view) (e.g., the cursor behavior with respect to the first virtual object is configured not to change according to the state of the parent node of the first virtual object).

[0112] In some embodiments, causing the cursor to operate in a first manner (e.g., with respect to the first virtual object) includes causing the cursor to operate with a first sensitivity (e.g., the amount of movement of the cursor based on the magnitude of the input (e.g., if the input has a first magnitude, the cursor moves a first distance, or if the input has a first magnitude, the cursor moves a second distance different from the first distance)), speed (e.g., movement speed), selection area (e.g., a buffer around the cursor, where an object within the buffer around the cursor is selected in response to detection of an input), visual characteristics (e.g., size, color, appearance (e.g., whether the cursor resembles a pointer or a hand), and / or spatial orientation), range of motion (e.g., the bounds within which the cursor can be displayed), or any combination thereof.

[0113] Note that the processes described above with respect to method 600 (e.g., Figure 6 ) also apply in a similar manner to the other methods described herein. For example, method 600 optionally includes one or more features of the various methods described above with reference to method 600. For example, a first application of method 600 may be a second application of method 700. For the sake of brevity, these details are not repeated herein.

[0114] Figure 7 is a flowchart illustrating a method (e.g., method 700) for changing the behavior of a cursor according to some embodiments. Some operations in method 700 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[0115] As described below, method 700 provides an intuitive way to change the behavior of a cursor. Method 700 reduces the cognitive burden on the user, thereby creating a more efficient human-machine interface. For battery-powered computing devices, enabling the user to interact with such devices faster and more efficiently saves power and increases the time between battery charges.

[0116] In some embodiments, method 700 is performed at a first application (e.g., the second type of application, user application, user process, second process different from the first process, and / or application software described above) executed on a computer system (e.g., a device, a public device, a personal device, a user device, and / or a head-mounted display (HMD)).

[0117] The first application identifies (702) a user interface (e.g., a graphical user interface) (e.g., corresponding to, associated with, and / or belonging to the first application) to be displayed by the computer system (e.g., in the future, such as in the absence of a predefined time to display, but in the presence of an event that causes the user interface to be displayed) (e.g., in the near future, such as an event has been detected and the user interface is identified in response to the detected event). In some embodiments, the user interface is identified in response to the first application detecting an event corresponding to a request to display the user interface, such as user input with respect to another user interface different from the user interface.

[0118] After identifying a user interface to be displayed by a computer system, a first application (e.g., via an application programming interface (API)) transmits (704) a definition (and / or view) of the user interface to a second application (and / or application platform) (e.g., the first type of application, system application, system process, first process, cursor process, cursor behavior process, and / or system software as described above), where the definition includes: (706) a definition (e.g., an API call) of a first surface (and / or a first virtual object, such as a user interface, user interface element, and / or visual virtual object) (e.g., a virtual surface, two-dimensional object, three-dimensional object, planar surface, a surface generated by a virtual device (e.g., a head-mounted device (HMD), augmented reality device, and / or virtual reality device), a surface displayed as covering a representation of a physical environment and / or on a partially transparent surface, and / or a non-tangible surface), the definition of the first surface causing a cursor (and / or pointer) to behave (e.g., move, select, and / or have a particular visual appearance) in a first manner relative to (and / or with respect to) the first surface (e.g., relative to the first virtual object (and / or the content included within the first virtual object)) (and / or when a user input points to the first virtual object); and (708) a definition (e.g., an API call) of a second surface, different from the first surface, the definition of the second surface causing the cursor to behave in a second manner, different from the first manner, relative to (and / or with respect to) the second surface. In some embodiments, the cursor behaving in the first manner includes: the cursor moving at a particular speed and / or in a particular direction. In some embodiments, the cursor behaving in the first manner includes: the cursor moving and / or selecting with a particular area and / or sensitivity. In some embodiments, the cursor behaving in the second manner includes; the cursor moving at a particular speed and / or in a particular direction. In some embodiments, the cursor behaving in the second manner includes: the cursor moving and / or selecting with a particular area and / or sensitivity. In some embodiments, the cursor behaving in the second manner includes: the cursor being disabled and / or not displayed relative to the second surface.

[0119] After transmitting the definition of the user interface, the first application receives (710) an indication of a user input (e.g., a movement input, a selection input, a tap input, and / or a non-tap input (e.g., a verbal input, an audible request, an audible command, an audible statement, a swipe input, a hold-and-drag input, a gaze input, an air gesture, and / or a mouse click)) corresponding to the first surface from a second application or a third application different from the first application and the second application (e.g., the first type of application, system application, system process, first process, cursor process, cursor behavior process, display process, user input process, and / or system software as described above) (e.g., via the API). In some embodiments, the user input corresponds to a cursor, such as via the movement and / or selection of the cursor.

[0120] In response to receiving an indication of a user input corresponding to a first surface, a first application performs an operation (712) based on the user input. In some embodiments, after transmitting a definition of a user interface, the first application receives (e.g., from a second application or a third application) an indication of a user input corresponding to a second surface. In some embodiments, in response to receiving an indication of a user input corresponding to the second surface, the first application performs a different operation from the application based on the user input corresponding to the second surface.

[0121] It should be noted that the processes described above with respect to method 700 (e.g., Figure 7 ) also apply to the methods described herein in a similar manner. For example, method 700 optionally includes one or more of the features of the various methods described herein with reference to method 700. For example, the first request of method 600 may be a definition of a user interface of method 700. For the sake of brevity, these details are not repeated herein.

[0122] For purposes of explanation, the foregoing description has been described by reference to specific examples. However, the above illustrative discussion is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Many modifications and variations are possible in light of the above teachings. The examples were chosen and described in order to best explain the principles of the techniques and their practical applications. Others skilled in the art are thereby enabled to best utilize the techniques and various examples with various modifications as are suited to the particular use contemplated.

[0123] Although the present disclosure and examples have been described in full with reference to the accompanying drawings, it should be noted that various changes and modifications will become apparent to those skilled in the art. It should be understood that such changes and modifications are considered to be included within the scope of the present disclosure and examples as defined by the claims.

[0124] As described above, one aspect of the inventive technology is to collect and use data obtained from various sources to improve the behavior of a cursor. The present disclosure contemplates that in some instances, the collected data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data may include location data, body data, body positioning data, application data (e.g., the amount of time spent interacting with a particular application, actions taken with respect to a particular application), computer usage data (e.g., the time spent using a computer system, different ways a user interacts with a computer system), or any other identifying information.

[0125] The present disclosure recognizes that the use of such personal information data in the technologies of the present invention can be used to benefit users. For example, personal information data can be used to customize the behavior of a cursor for a user. Thus, the use of such personal information data enables better cursor interaction. Additionally, the present disclosure anticipates other uses of personal information data that are beneficial to users.

[0126] The present disclosure also contemplates that entities responsible for the collection, analysis, disclosure, transmission, storage, or other use of such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to privacy policies and measures that are recognized as meeting or exceeding industry or government requirements for maintaining the privacy and security of personal information data. For example, personal information from users should be collected for legitimate and reasonable uses of the entity and not shared or sold outside of those legitimate uses. Additionally, such collection should only occur after receiving the informed consent of the user. Additionally, such entities should take any steps required to safeguard and protect access to such personal information data and ensure that others with access to the personal information data comply with their privacy policies and procedures. Additionally, such entities may subject themselves to third-party assessments to demonstrate their compliance with widely accepted privacy policies and practices.

[0127] Notwithstanding the foregoing, the present disclosure also anticipates embodiments in which users selectively block the use or access of personal information data. That is, the present disclosure anticipates that hardware elements and / or software elements may be provided to prevent or block access to such personal information data. For example, in the case of image capture, the technologies of the present invention may be configured to allow a user to select to "opt in" or "opt out" of participating in the collection of personal information data during a registration service.

[0128] Thus, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, the present disclosure also anticipates that various embodiments may also be implemented without access to such personal information data. That is, the various embodiments of the technologies of the present invention will not fail to operate properly due to the lack of all or a portion of such personal information data. For example, a user may control the behavior of a cursor without a computer system tracking the user's movements.

[0129] Figure 8 An electronic system 800 is illustrated that may be used to implement one or more specific implementations of the subject technology. The electronic system 800 may be, for example, Figure 1The electronic device 105, the handheld electronic device 104, the electronic device 110, the electronic device 115, and / or the server 120 shown and / or can be a part of it. The electronic system 800 may include various types of computer-readable media and interfaces for various other types of computer-readable media. The electronic system 800 includes a bus 808, one or more processing units 812, a system memory 804 (and / or cache), a ROM 810, a permanent storage device 802, an input device interface 814, an output device interface 806, and one or more network interfaces 816, or subsets and variations thereof.

[0130] The bus 808 generally represents the entire system bus, peripheral bus, and chipset bus that communicatively connect many internal devices of the electronic system 800. In one or more specific embodiments, the bus 808 communicatively connects one or more processing units 812 with the ROM 810, the system memory 804, and the permanent storage device 802. One or more processing units 812 retrieve instructions to be executed and data to be processed from these various memory units in order to execute the processes disclosed in this subject matter. In different specific embodiments, one or more processing units 812 can be a single processor or a multi-core processor.

[0131] The ROM 810 stores static data and instructions required by one or more processing units 812 and other modules of the electronic system 800. On the other hand, the permanent storage device 802 can be a read-write memory device. The permanent storage device 802 can be a non-volatile memory unit that stores instructions and data even when the electronic system 800 is turned off. In one or more specific embodiments, a mass storage device (such as a magnetic disk or optical disk and its corresponding disk drive) can be used as the permanent storage device 802.

[0132] In one or more specific embodiments, a removable storage device (such as a floppy disk, a flash drive, and its corresponding disk drive) can be used as the permanent storage device 802. Like the permanent storage device 802, the system memory 804 can be a read-write memory device. However, different from the permanent storage device 802, the system memory 804 can be a volatile read-write memory, such as random access memory. The system memory 804 can store any instructions and data among the instructions and data that one or more processing units 812 may need during operation. In one or more specific embodiments, the processes disclosed in this subject matter are stored in the system memory 804, the permanent storage device 802, and / or the ROM 810 (each of which is implemented as a non-transitory computer-readable medium). One or more processing units 812 retrieve instructions to be executed and data to be processed from these various memory units in order to execute the processes of one or more specific embodiments.

[0133] The bus 808 is also connected to an input device interface 814 and an output device interface 806. The input device interface 814 enables a user to convey information to and select commands for the electronic system 800. Input devices that may be used with the input device interface 814 can include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 806 can enable, for example, the display of images generated by the electronic system 800. Output devices that may be used with the output device interface 806 can include, for example, a printer and a display device, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid state display, a projector, or any other device for outputting information. One or more particular implementations can include a device that functions as both an input device and an output device, such as a touch screen. In these particular implementations, the feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, voice, or tactile input.

[0134] Finally, as Figure 8 shown, the bus 808 also couples the electronic system 800 to one or more networks and / or to one or more network nodes, such as Figure 1 the electronic device 110 shown. In this way, the electronic system 800 can be part of a computer network, such as a local area network (LAN), a wide area network ("WAN"), or an intranet, or can be part of a network of networks, such as the Internet. Any or all components of the electronic system 800 can be used in conjunction with the present subject matter disclosure.

[0135] The foregoing functions can be implemented in computer software, firmware, or hardware. The technology can be implemented using one or more computer program products. A programmable processor and a computer can be included in or packaged as a mobile device. These processes and logical flows can be executed by one or more programmable processors and one or more programmable logic circuits. General and special purpose computing devices and storage devices can be interconnected by a communication network.

[0136] Some specific implementations include electronic components that store computer program instructions in a machine-readable or computer-readable medium (also referred to as a computer-readable storage medium, machine-readable medium, or machine-readable storage medium), such as a microprocessor, a storage device, and a memory. Some examples of such computer-readable media include RAM, ROM, compact disc read-only memory (CD-ROM), recordable compact disc (CD-R), rewritable compact disc (CD-RW), digital versatile disc read-only (e.g., DVD-ROM, dual-layer DVD-ROM), various recordable / rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD card, mini-SD card, micro-SD card, etc.), magnetic and / or solid state disk drives, read-only and recordable discs, high density discs, any other optical or magnetic medium, and floppy disks. The computer-readable medium can store a computer program that can be executed by at least one processing unit and includes a set of instructions for performing various operations. Examples of a computer program or computer code include machine code, such as machine code generated by a compiler, and files that include higher-level code that can be executed by a computer, an electronic component, or a microprocessor using an interpreter.

[0137] Although the foregoing discussion primarily relates to a microprocessor or multi-core processor that executes software, some specific implementations are performed by one or more integrated circuits such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). In some specific implementations, such integrated circuits execute instructions stored on the circuit itself.

[0138] As used in this specification and in any claims of this application, the terms "computer", "server", "processor", and "memory" all refer to electronic or other technological devices. These terms exclude a person or a group of persons. For the purposes of this specification, the term display or being displayed means being displayed on an electronic device. As used in this specification and in any claims of this application, the terms "computer-readable medium" and "computer-readable medium" are entirely limited to tangible physical objects that store information in a form readable by a computer. These terms do not include any wireless signals, wired download signals, and any other transient signals.

[0139] To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can also be used to provide for interaction with the user; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. Additionally, the computer can interact with the user by sending documents to and receiving documents from the devices used by the user; for example, by sending a web page to a web browser in response to a request received from the web browser on a user client device.

[0140] Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, such as a data server, or includes a middleware component, such as an application server, or includes a front-end component, such as a client computer having a graphical user interface or a web browser through which a user can interact with implementations of the subject matter described in this specification, or any combination of one or more such back-end components, middleware components, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, such as a communication network. Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0141] The computing system can include clients and servers. The clients and servers are typically remote from each other and can interact through a communication network. The relationship between the client and the server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some implementations, the server sends data (e.g., an HTML page) to the client device (e.g., for displaying data to a user interacting with the client device and receiving user input from the user interacting with the client device). Data generated at the client device (e.g., the result of a user interaction) can be received at the server from the client device.

[0142] Implementations within the scope of the present disclosure can be implemented, in part or in whole, using a tangible computer-readable storage medium (or one or more types of multiple tangible computer-readable storage media) encoding one or more instructions. The tangible computer-readable storage medium can substantially also be non-transitory.

[0143] A computer-readable storage medium can be any storage medium that can be read, written to, or otherwise accessed by a general or special-purpose computing device, including any processing electronics and / or processing circuitry capable of executing instructions. By way of example and not limitation, the computer-readable medium can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. The computer-readable medium can also include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash memory, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.

[0144] In addition, the computer-readable storage medium can include any non-semiconductor memory, such as optical disk storage devices, magnetic disk storage devices, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more specific embodiments, the tangible computer-readable storage medium can be directly coupled to the computing device, while in other specific embodiments, the tangible computer-readable storage medium can be indirectly coupled to the computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.

[0145] The instructions can be directly executable or can be used to develop executable instructions. For example, the instructions can be implemented as executable or non-executable machine code, or can be implemented as high-level language instructions that can be compiled to produce executable or non-executable machine code. In addition, the instructions can also be implemented as data, or can include data. The computer-executable instructions can also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As will be appreciated by those skilled in the art, details including, but not limited to, the number, structure, sequence, and organization of the instructions can vary significantly without changing the underlying logic, functionality, processing, and output.

[0146] Although the foregoing discussion has primarily related to a microprocessor or multi-core processor that executes software, one or more specific embodiments are executed by one or more integrated circuits, such as an ASIC or FPGA. In one or more specific embodiments, such integrated circuits execute instructions stored on the circuit itself.

[0147] Those skilled in the art will recognize that the various illustrative blocks, modules, elements, components, methods, and algorithms described herein can be implemented as electronic hardware, computer software, or a combination of both. To illustrate this interchangeability of hardware and software, the various illustrative blocks, modules, elements, components, methods, and algorithms have been described generally in terms of functionality above. Whether such functionality is implemented as hardware or software depends upon the particular application and the design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application. The various components and blocks may be arranged differently (e.g., in a different order, or partitioned in a different manner) without departing from the scope of the claimed subject matter.

[0148] It should be understood that any specific order or hierarchical arrangement of the blocks in the processes disclosed herein is an illustration of example methods. Based on design preference, it should be understood that the specific order or hierarchical arrangement of the blocks in the processes may be rearranged or that all illustrated blocks may be performed. Any of the blocks may be performed concurrently. In one or more particular embodiments, multitasking and parallel processing may be advantageous. Additionally, the partitioning of the various system components in the above-described specific embodiments should not be construed as requiring such partitioning in all particular embodiments, and it should be understood that the program components and systems may generally be integrated together in a single software product or packaged into multiple software products.

[0149] As used in this specification and in any claims of this application, the terms "base station", "receiver", "computer", "server", "processor", and "memory" all refer to an electronic device or other technological device. These terms exclude a person or a group of persons. For the purposes of this specification, the term "display" or "displaying" means displaying on an electronic device.

[0150] The predicate words "configured to", "operable to", and "programmed to" do not imply any particular tangible or intangible modification to a subject but are intended to be used interchangeably. In one or more particular embodiments, a processor configured to monitor and control operations or components may also mean that the processor is programmed to monitor and control operations or that the processor is operable to monitor and control operations. Similarly, a processor configured to execute code may be interpreted as a processor programmed to execute code or operable to execute code.

[0151] Phrases such as aspect, this aspect, another aspect, some aspects, one or more aspects, an implementation, this implementation, another implementation, some implementations, one or more implementations, an embodiment, this embodiment, another embodiment, some embodiments, one or more embodiments, configuration, this configuration, other configurations, some configurations, one or more configurations, subject technology, disclosure, the present disclosure, other variations thereof, and the like are used for convenience and do not imply that disclosure involving such one or more phrases is essential to the subject technology or that such disclosure applies to all configurations of the subject technology. Disclosure involving such one or more phrases may apply to all configurations or one or more configurations. Disclosure involving such one or more phrases may provide one or more examples. Phrases such as aspect or some aspects may refer to one or more aspects and vice versa, and this applies similarly to the other aforementioned phrases.

[0152] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any implementation described herein as "exemplary" or serving as an "example" is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, to the extent that the terms "including," "having," and the like are used in the specification or claims, such terms are intended to be inclusive, similar to the way the term "comprising" is interpreted when used as a transitional word in a claim.

[0153] All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be covered by the claims. In addition, nothing disclosed herein is intended to be made available to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element shall be construed under 35 U.S.C. §112(f) unless the element is explicitly recited using the phrase “means for” or, in the case of a method claim, the phrase “step for.”

[0154] The foregoing description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein but are to be accorded the full scope consistent with the language of the claims, where reference to a singular element is not intended to mean "only one" but rather "one or more" unless specifically stated otherwise. The term "some," unless specifically stated otherwise, means one or more. Pronouns of the masculine gender (e.g., his) include the feminine and neuter genders (e.g., her and its), and vice versa. Headings and subheadings (if any) are used for convenience only and do not limit the subject disclosure.

Claims

1. A method, the method comprising: at a first application executed on a computer system: receiving, from a second application different from the first application, a first request to use a corresponding cursor behavior; and in conjunction with receiving the first request to use the corresponding cursor behavior: causing the cursor to operate in a first manner based on determining that the corresponding cursor behavior is a first cursor behavior; and not using the cursor based on determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior.

2. The method according to claim 1, wherein the computer system communicates with a display generation component and one or more input devices, and the method further comprises: after receiving the first request to use the corresponding cursor behavior, detecting, via the one or more input devices, a set of one or more user inputs; and in response to detecting the set of one or more user inputs: continuing to cause the cursor to operate in the first manner based on determining that the set of one or more user inputs corresponds to a first virtual object and determining that the corresponding cursor behavior is the first cursor behavior; and 3. The method according to claim 2, wherein detecting the set of one or more inputs comprises: abandoning displaying the cursor via the display generation component based on determining that the set of one or more user inputs corresponds to the first virtual object and determining that the corresponding cursor behavior is the second cursor behavior.

4. The method according to claim 2, wherein detecting the set of one or more inputs comprises: Detecting, via the one or more input devices, movement of a set of one or more body parts of a user. Detecting, via the one or more input devices, a user's gaze.

5. The method according to claim 1, wherein the first request to use the corresponding cursor behavior is included in a view of a user interface corresponding to the second application, and wherein the view of the user interface includes a definition of the first virtual object.

6. The method according to claim 5, wherein the corresponding cursor behavior is a first corresponding cursor behavior, wherein the view of the user interface includes a definition of another virtual object different from the first virtual object, wherein the view includes a request to use a second corresponding cursor behavior with respect to the another virtual object, and wherein the second corresponding cursor behavior is different from the first corresponding cursor behavior.

7. The method according to claim 6, wherein the request to use the second corresponding cursor behavior with respect to the another virtual object corresponds to a request inherited from a parent node of the another virtual object within the view, and wherein the first request to use the first corresponding cursor behavior does not correspond to a request inherited from a parent node of the first virtual object within the view.

8. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a first application executed on a computer system, the one or more programs including instructions for: receiving, from a second application different from the first application, a first request to use a corresponding cursor behavior; and in conjunction with receiving the first request to use the corresponding cursor behavior: Based on determining that the corresponding cursor behavior is a first cursor behavior, causing the cursor to operate in a first manner; and Based on determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior, causing the cursor not to be used.

9. A first application executed on a computer system, the first application comprising: One or more processors; And A memory that stores one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: Receiving a first request to use a corresponding cursor behavior from a second application different from the first application; and In conjunction with receiving the first request to use the corresponding cursor behavior: Based on determining that the corresponding cursor behavior is a first cursor behavior, causing the cursor to operate in a first manner; and Based on determining that the corresponding cursor behavior is a second cursor behavior different from the first cursor behavior, causing the cursor not to be used.