# US 2014/0208246 A1 · Supporting user interactions with rendered graphical objects

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0208246 A1
- Document ID: US20140208246A1
- Status: Published application
- Kind: A1
- Application number: 13/860,781
- Filed: 2013-04-11
- Published: 2014-07-24
- Earliest claimed: 2013-01-21
- Assignees: Google Inc.
- Inventors: Susannah Alice Raub; Enoch Chee-Lok Lau
- Web page: https://patentgrep.com/patent/US20140208246A1

## CPC

- G06F 3/04812: Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
- G06F 3/0484: for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F 3/04842: Selection of displayed objects or displayed text elements (G06F3/0482 takes precedence)
- G06F 3/0486: Drag-and-drop
- G06F 3/048: Interaction techniques based on graphical user interfaces [GUI]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A graphical object is rendered to a pixel buffer, such that a software application executing on a computing device displays the contents of the pixel buffer via a user interface. An invisible element is created and positioned under the cursor in response to detecting that the cursor is positioned over the feature being displayed via the user interface. The software application automatically repositions the invisible element in accordance with a movement of the cursor. A change in the position of the invisible element is determined, and the graphical object is repositioned within the pixel buffer in accordance with the change in the position of the invisible element.

## Claims

### Claim 1

A tangible computer-readable medium storing thereon a set of instructions that, when executed on one or more processors in a computing device having a user interface, cause the one or more processors to:
render a graphical object to a pixel buffer, wherein a software application executing on the computing device displays the contents of the pixel buffer via the user interface;
in response to detecting that a cursor is positioned over the graphical object displayed via the user interface, cause the software application to create an invisible element positioned under the cursor, wherein the software application automatically repositions the invisible element in accordance with a movement of the cursor;
determine a change in the position of the invisible element; and
reposition the graphical object within the pixel buffer in accordance with the change in the position of the invisible element as the position of the invisible element changes.

### Claim 2 (depends on 1)

The computer-readable medium of claim 1, wherein the set of instructions further causes the one or more processors to:
receive an activation event in response to a user action applied to the user interface, while the cursor is positioned over the graphical object,
wherein the graphical object is repositioned within the pixel buffer only after the activation event is received.

### Claim 3 (depends on 2)

The computer-readable medium of claim 2, wherein the set of instructions further causes the one or more processors to:
receive a deactivation event subsequently to receiving the activation event, and
not reposition the graphical object within the pixel buffer after the deactivation event is received even when the software application repositions the invisible element.

### Claim 4 (depends on 3)

The computer-readable medium of claim 3, wherein:
the activation event is a mousedown event, and
the deactivation event is a mouseup event.

### Claim 5 (depends on 3)

The computer-readable medium of claim 3, wherein the set of instructions further causes the one or more processors to remove the invisible element when the cursor is no longer positioned over the graphical object and after the deactivation event is received.

### Claim 6 (depends on 3)

The computer-readable medium of claim 3, wherein the set of instructions further causes the one or more processors to:
in response to receiving the activation event, modify a z-order value of the invisible element so as to bring the invisible element above one or more elements within a container shared with the invisible element, and
in response to receiving the deactivation event, modify the z-order value of the invisible element so as to bring the invisible element below the one or more elements.

### Claim 7 (depends on 1)

The computer-readable medium of claim 1, wherein the software application is a web browser that supports Document Object Model (DOM) objects.

### Claim 8 (depends on 7)

The computer-readable medium of claim 7, wherein the invisible element is appended to a DOM object and configured to listen to mouse events.

### Claim 9 (depends on 7)

The computer-readable medium of claim 7, wherein the web browser provides the pixel buffer via a canvas element that conforms to a Hyper Text Markup Language (HTML) specification.

### Claim 10 (depends on 7)

The computer-readable medium of claim 7, wherein the set of instructions render a digital map of a geographic area.

### Claim 11 (depends on 10)

The computer-readable medium of claim 10, wherein the graphical object is a map feature rendered over the digital map in accordance with user commands received via the user interface.

### Claim 12 (depends on 7)

The computer-readable medium of claim 7, wherein set of instructions is in a scripting language interpreted by the web browser at runtime.

### Claim 13 (depends on 1)

The computer-readable medium of claim 1, wherein to determine the change in the position of the invisible element, the set of instructions causes the one or more processors to count the number of pixels by which the invisible element has moved.

### Claim 14 (depends on 1)

The computer-readable medium of claim 1, wherein to reposition the graphical object within the pixel buffer, the set of instructions causes the one or more processors to re-render the graphical object in the pixel buffer at a new location.

### Claim 15 (depends on 1)

The computer-readable medium of claim 1, wherein the invisible element is defined using an HTML div element having a substantially transparent background.

### Claim 16 (depends on 1)

The computer-readable medium of claim 1, wherein the cursor is a mouse cursor.

### Claim 17

A tangible computer-readable medium storing thereon instructions that implement a graphical object management module configured to operate independently from a software framework that provides a pixel buffer to the graphical object management module, which the software framework displays via a user interface, wherein the graphical object management module, when executed on one or more processors to, is configured to:
render a graphical object to the pixel buffer, wherein the software framework does not have direct access to the graphical object in the pixel buffer;
cause the software framework to generate an invisible element positionable in accordance with input received via the user interface; and
in response to the invisible element being repositioned, automatically reposition the graphical object within the pixel buffer in accordance with a change in the position of the invisible element.

### Claim 18 (depends on 17)

The computer-readable medium of claim 17, wherein:
the software framework is implemented in a web browser that supports Document Object Model (DOM) objects,
the invisible element is appended to a DOM element that receives mouse events, touch events, or both, and
the pixel buffer is implemented as a canvas element.

### Claim 19 (depends on 18)

The computer-readable medium of claim 18, wherein the graphical object management module operates in an Application Programming Interface (API) that provides an interactive digital map via the user interface.

### Claim 20 (depends on 17)

The computer-readable medium of claim 17, wherein the graphical object management module is further configured to:
cause the software framework to generate the invisible element in response to determining that a mouse cursor is positioned over the graphical object,
begin repositioning the graphical object within the pixel buffer in accordance with the change in the position of the invisible element in response to receiving a mousedown event while the mouse cursor is positioned over the graphical object, and
stop repositioning the graphical object within the pixel buffer in response to receiving a mouseup event.

### Claim 21 (depends on 20)

The computer-readable medium of claim 20, wherein the graphical object management module is further configured to:
subsequently to receiving the mousedown event, remove the invisible element in response to determining that the mouse cursor is no longer positioned over the graphical object.

### Claim 22 (depends on 20)

The computer-readable medium of claim 20, wherein the graphical object is a first graphical object, and wherein the graphical object management module is further configured to:
subsequently to receiving the mouseup event, determine that the mouse cursor is no longer positioned over the graphical object, and
if the mouse cursor is positioned over a second graphical object, begin repositioning the second graphical object within the pixel buffer in accordance with a change in the position of the invisible element after receiving mousedown and mousemove events, or
if the mouse cursor is not positioned another graphical object, remove the invisible element.

### Claim 23 (depends on 20)

The computer-readable medium of claim 20, wherein the graphical object management module is further configured to:
in response to receiving the mousedown event, modify a z-order value of the invisible element so as to bring the invisible element above one or more elements within a container shared with the invisible element, and
in response to receiving the mouseup event, modify the z-order value of the invisible element so as to bring the invisible element below the one or more elements.

### Claim 24

A method in a computing device for supporting user interactions with graphical objects rendered as pixels to a pixel buffer, the method comprising:
rendering a feature to the pixel buffer;
receiving an indication that a cursor is positioned over the feature while the contents of the pixel buffer are being displayed on a display device of the computing device;
associating an invisible element with the feature, wherein the invisible element is repositioned in accordance with the cursor; and
repositioning the feature in the pixel buffer in accordance with a change in positioning of the invisible element as the positioning of the invisible element changes.

### Claim 25 (depends on 24)

The method of claim 24, further comprising rendering a digital map, wherein the feature overlays the digital map.

### Claim 26 (depends on 24)

The method of claim 24, wherein repositioning the feature in the pixel buffer includes:
determining a number of pixels by which the invisible element has been repositioned, and
repositioning the feature in the pixel buffer by the determined number of pixels, including re-rendering the feature at a new location.

### Claim 27

A computing device comprising:
a user interface;
one or more processors; and
a computer-readable memory storing thereon:
a pixel buffer;
first instructions that, when executed on the one or more processors, implement a web browser that displays the contents of the pixel buffer via the user interface;
second instructions that, when executed by the one or more processors, cause the one or more processors to:
(i) render a graphical object to the pixel buffer, wherein the web browser does not have direct access to the graphical object in the pixel buffer,
(ii) in response to detecting that a cursor is positioned over the graphical object displayed via the user interface, cause the web browser to create an invisible element positioned under the cursor, wherein the web browser automatically repositions the invisible element in accordance with a movement of the cursor;
(iii) determine a change in the position of the invisible element, and
(iv) reposition the graphical object within the pixel buffer in accordance with the change in the position of the invisible element.
