Field of the Invention
[0001] The present invention relates generally to touch systems and in particular to a gesture
recognition method and touch system incorporating the same.
Background of the Invention
[0002] Touch systems are well known in the art and typically include a touch screen having
a touch surface on which contacts are made using a pointer in order to generate user
input. Pointer contacts with the touch surface are detected and are used to generate
corresponding output depending on areas of the contact surface where the contacts
are made. There are basically two general types of touch systems available and they
can be broadly classified as "active" touch systems and "passive" touch systems.
[0003] Active touch systems allow a user to generate user input by contacting the touch
surface with a special pointer that usually requires some form of on-board power source,
typically batteries. The special pointer emits signals such as infrared light, visible
light, ultrasonic frequencies, electromagnetic frequencies, etc. that activate the
touch surface.
[0004] Passive touch systems allow a user to generate user input by contacting the touch
surface with a passive pointer and do not require the use of a special pointer in
order to activate the touch surface. The pointer can be a finger, a cylinder of some
material, or any suitable object that can be used to contact some predetermined area
of interest on the touch surface.
[0005] Passive touch systems provide advantages over active touch systems in that any suitable
pointing device, including a user's finger, can be used as a pointer to contact the
touch surface. As a result, user input can easily be generated. Also, since special
active pointers are not necessary in passive touch systems, battery power levels and/or
pointer damage, theft, or misplacement are of no concern to users.
[0006] For example, U.S. Patent Application No. 09/610,481 filed on July 5, 2000 and International
PCT Application No. PCT/CA01/00980 filed on July 5, 2001 and published under No. WO
02/03316 on January 10, 2002, assigned to SMART Technologies Inc., assignee of the
present invention, disclose a camera-based touch system comprising a touch screen
that includes a passive touch surface on which a computer-generated image is presented.
A rectangular bezel or frame surrounds the touch surface and supports digital cameras
at its comers. The digital cameras have overlapping fields of view that encompass
and look across the touch surface. The digital cameras acquire images looking across
the touch surface from different locations and generate image data. Image data acquired
by the digital cameras is processed by digital signal processors associated with the
digital cameras to determine if a pointer exists in the captured image data. When
it is determined that a pointer exists in the captured image data, the digital signal
processors generate pointer information packets (PIPs) and convey the PIPs to a master
controller. Each PIP includes a header portion, a data portion and a checksum. The
data portion includes a pointer ID field that stores a pointer identifier to allow
multiple pointers to be tracked. The data portion also includes a pointer location
parameter that identifies a pointer x-position and a pointer tip parameter that identifies
a pointer z-position. A contact state field stores a value indicating whether the
pointer is in or out of contact with the touch surface allowing pointer hover to be
detected.
[0007] Upon receipt of the PIPs, the master controller processes the PIPs using triangulation
to determine the location of each pointer in the captured images relative to the touch
surface in (x,y) coordinates. In this manner, as PIPs are generated in response to
captured images, the position and movement of pointers over the touch surface can
be tracked. The pointer location data generated by the master controller is conveyed
to a computer executing one or more application programs. The computer uses the pointer
location data to update the computer-generated image that is presented on the touch
surface. Pointer contacts on and pointer movement over the touch surface can therefore
be recorded as writing or drawing or used to control execution of application programs
executed by the computer.
[0008] As will be appreciated, since digital cameras at the comers of the bezels are used
to capture image data, the touch system is able to determine when multiple pointers
contact and move across the touch surface. This of course provides for enhanced functionality
as compared to analog resistive touch systems that are only able to track a single
pointer. Although enhanced functionality is provided by the above-described camera-based
touch system, to-date, this enhanced functionally has not been fully exploited. It
is therefore an object of the present invention to provide a novel gesture recognition
method and touch system incorporating the same.
Summary of the Invention
[0009] According to one aspect of the present invention there is provided a gesture recognition
method comprising the steps of:
displaying an image on a touch surface;
detecting pointer contacts on said touch surface and examining said pointer contacts
to recognize multiple pointer contacts representing a gesture; and
when multiple pointer contacts representing a gesture occur, updating the displayed
image in accordance with said gesture.
[0010] Multiple pointer contacts representing a gesture include multiple finger contacts
on the touch surface, a finger contact on the touch surface and an object contact
on the touch surface and multiple object contacts on the touch surface.
[0011] In one aspect, the gesture is a right-click event and is represented by a first pointer
contact on a displayed application, and a subsequent second pointer contact that occurs
within a threshold distance of the first pointer contact and while the first pointer
contact is maintained. In another aspect, the gesture is a scroll event and is represented
by simultaneous pointer contacts on the touch surface.
[0012] According to another aspect of the present invention there is provided a gesture
recognition method comprising the steps of:
detecting multiple pointers in close proximity to a touch surface to determine if
said multiple pointers are being used to perform a known gesture; and
when said multiple pointers are being used to perform a known gesture, executing a
command associated with said gesture.
[0013] Preferably, during the detecting, pointer contacts with or close pointer hovers over
the touch surface are detected to determine if a known gesture is being performed
and specifically if one of a number of known gestures is being performed, each known
gesture being associated with a different command. In a preferred embodiment, the
movement of the multiple pointers relative to the touch surface and/or the pointer
type determines the gesture being performed.
[0014] According to yet another aspect of the present invention there is provided an input
detection method in an interactive system capable of detecting movement of multiple
pointers generally simultaneously within an input region, said method comprising the
steps of:
capturing images looking generally across said input region;
analyzing said images to detect multiple pointers within said input region;
when multiple pointers are detected, examining data associated with said multiple
pointers to determine if the data represents an input gesture; and
when the data represents an input gesture, executing a command corresponding to the
recognized input gesture.
[0015] According to still yet another aspect of the present invention there is provided
a touch system comprising:
a touch surface to be contacted by at least one pointer;
at least one imaging device having a field of view looking generally across said touch
surface; and
at least one processor communicating with said at least one imaging device and analyzing
images acquired by said at least one imaging device to determine the location on said
touch surface where pointer contacts are made, when said touch surface is contacted
by multiple pointers, said processor examining said multiple pointer contacts to determine
if said multiple pointer contacts represent a gesture and when said multiple pointer
contacts represent a gesture, said processor executing a command associated with said
gesture.
[0016] According to still yet another aspect of the present invention there is provided
an interactive input system comprising:
at least one imaging device having an input region within its field of view into which
one or more pointers is moved to generate user input; and
at least one processor communicating with said at least one imaging device and analyzing
each image acquired by said at least one imaging device to determine the action of
pointers in said input region, said at least one processor determining when multiple
pointer actions within said input region represent a gesture, when said multiple pointer
actions represent a gesture, said at least one processor executing a command corresponding
to said gesture.
[0017] According to still yet another aspect of the present invention there is provided
in an interactive touch system, a method of simulating a right-click mouse event comprising
the steps of:
detecting a first pointer contact on a touch surface over a displayed application
that represents a left-click mouse event;
detecting a second pointer contact on said touch surface that occurs within a threshold
period of time following said first pointer contact and within a threshold distance
of said first pointer contact; and
generating a right-click mouse event in response to said detected second pointer contact.
[0018] The present invention provides advantages in that since gestures represented by multiple
pointer contacts on and/or movement over the touch surface are detected and corresponding
commands generated, enhanced touch system functionality is provided.
Brief Description of the Drawings
[0019] Embodiments of the present invention will now be described more fully with reference
to the accompanying drawings in which:
Figure 1 is a schematic diagram of a camera-based touch system in accordance with
the present invention;
Figure 2 is a front elevation view of a touch screen forming part of the touch system
of Figure 1;
Figures 3a to 3d are front perspective views of the touch screen of Figure 2 showing
an input right-click gesture; and
Figures 4a to 4f are front perspective views of the touch screen of Figure 2 showing
input up/down and left/right scroll gestures.
Detailed Description of the Preferred Embodiments
[0020] Turning now to Figure 1, a camera-based touch system in accordance with the present
invention is shown and is generally identified by reference numeral 50. Camera-based
touch system 50 is similar to that disclosed in International PCT Application Serial
No. WO 02/03316, assigned to SMART Technologies Inc., assignee of the present invention,
the contents of which are incorporated herein by reference. As can be seen, touch
system 50 includes a touch screen 52 coupled to a digital signal processor (DSP) based
master controller 54. Master controller 54 is also coupled to a computer 56. Computer
56 executes one or more application programs and provides computer-generated image
output that is displayed on the touch screen 52. The coordinate system of the touch
system 52 is mapped to the coordinate system of the computer. The touch screen 52,
master controller 54 and computer 56 form a closed-loop so that pointer hover or contacts
with and pointer movement over or above the touch screen 52 can be recorded as writing
or drawing or used to control execution of application programs executed by the computer
56.
[0021] Figure 2 better illustrates the touch screen 52. Touch screen 52 in the present embodiment
includes a high-resolution display device such as a plasma display 58, the front surface
of which defines a touch surface 60. The touch surface 60 is bordered by an illuminated
bezel or frame 62 coupled to the display device. Illuminated bezel 62 is of the type
disclosed in U.S. Patent Application No. 10/354,168 filed on January 30, 2003 and
includes elongate side frame assemblies 64 that are coupled to the sides of the plasma
display 58. Each side frame assembly 64 accommodates a light source (not shown) that
projects infrared backlighting across the touch surface 60. The ends of the side frame
assemblies 64 are joined by comer pieces 68 that house DSP-based CMOS digital cameras
70. Each digital camera 70 is mounted within its respective comer piece 68 so that
its field of view encompasses and looks across the entire touch surface 60.
[0022] During operation, the digital cameras 70 acquire images of the touch surface 60 and
generate image data. The acquired image data is processed by digital signal processors
associated with the digital cameras 70 to determine if a pointer exists in the captured
images. When it is determined that one or more pointers exist in the acquired image
data, the digital signal processors of the digital cameras 70 generate pointer information
packets (PIPs) and convey the PIPs to the digital signal processor (DSP) based master
controller 54. Each PIP includes a header portion, a data portion and a checksum.
The data portion includes a pointer ID field that stores a pointer identifier to allow
multiple pointers to be tracked. The data portion also includes a pointer location
parameter that identifies a pointer x-position and a pointer tip parameter that identifies
a pointer z-position. A contact state field stores a value indicating whether the
pointer is in or out of contact with the touch surface 60 allowing pointer hover to
be detected.
[0023] Upon receipt of the PIPs, the master controller 54 processes the PIPs using triangulation
to determine the location of each pointer in the captured images relative to the touch
surface 60 in (x,y) coordinates. In this manner, as PIPs are generated in response
to captured images, the position and movement of pointers over the touch surface 60
can be tracked. Since image data is processed to detect the existence of one or more
pointers, the pointers may take any suitable form such as for example, a user's finger,
a cylinder of material, a passive or active pen tool or erase tool or other appropriate
object. Specifics of the manner by which the image data is acquired by the digital
cameras 70 and processed by the master controller 54 are described in International
PCT Application No. PCT/CA01/00980 filed on July 5, 2001 and published under No. WO
02/03316 on January 10, 2002, the contents of which are incorporated herein by reference.
Accordingly, such specifics will not be described further herein.
[0024] The master controller 54 outputs generated pointer data to the computer 56 that identifies
the location of each pointer relative to the touch surface as each pointer approaches
and/or contacts and moves over the touch surface 60. A driver loaded on the computer
56 receives the pointer data and examines the pointer data to determine if the pointer
data has been generated in response to a known input gesture stored in a gesture library.
Specifically, the driver examines the pointer data to detect the existence of multiple
pointers in captured images and then examines the nature of the multiple pointers
to determine if a known gesture has been performed such as for example a right-click
gesture, a scroll gesture, a rotate gesture etc. When a gesture has been performed,
the driver generates a command (event) that is associated with the determined gesture
and conveys the command to the active application program being executed by the computer
56.
[0025] Turning now to Figures 3a to 4f, examples of gestures that can be recognized by the
touch system and the resulting actions that are performed in response to the recognized
gestures are shown.
Intuitive Right-Click Gesture
[0026] Figures 3a to 3d illustrate an intuitive right-click gesture. When a user contacts
the touch surface 60 with a finger over an application displayed on the touch surface,
the driver recognizes the contact as a left-click mouse event and injects the left-click
mouse event into the application. If the user subsequently contacts the touch surface
60 with another finger while maintaining the contact with the one finger and the subsequent
contact is to the right of and close to the initial contact, the driver recognizes
the second touch surface contact as a right-click gesture and injects a right-click
event into the application. In response to the right-click event, the application
opens and displays a drop down menu (not shown). As will be appreciated, this enables
a user to invoke a right-click action using a hand gesture that is similar to the
action performed when invoking a right-click action using a mouse. Although, Figures
3a to 3d show the intuitive right-click gesture being performed using two fingers
on the same hand, it will be appreciated that the right-click gesture can be performed
using a finger on different hands.
Scroll Up/Down and Left/Right Gesture
[0027] Figures 4a to 4e illustrate up/down and left/right scroll gestures. If the user contacts
the touch surface 60 with a pair of fingers simultaneously over an application window
displayed on the touch surface and the fingers are closely and generally horizontally
spaced, the driver recognizes the simultaneous finger contacts as a scroll gesture
and injects a scroll event into the application. Pointer position data conveyed to
the application by the driver in response to subsequent vertical movement of the fingers
is interpreted by the application either as scroll up or scroll down commands. In
response to the scroll up or down commands, the application moves information presented
within the application window in the direction of the vertical movement. Pointer position
data conveyed to the application by the driver in response to subsequent horizontal
movement of the fingers is interpreted by the application as scroll to side commands.
In response to the scroll to side commands, the application moves information displayed
within the application window to the side corresponding to the direction of the horizontal
movement. Although Figures 4a to 4f show the scroll gestures being performed using
two fingers on the same hand, it will be appreciated that the scroll gestures can
be performed using a finger on different hands.
[0028] Although not illustrated, a number of other gestures can be recognized by the driver
and used to generate commands to control an application being executed by the computer
56. Examples of such other gestures will now be described.
Page Up/Down Gesture
[0029] If the user contacts the touch surface 60 with three fingers simultaneously over
an application window displayed on the touch surface and the three fingers are closely
and generally horizontally spaced, the driver recognizes the simultaneous finger contacts
as a page gesture and injects a page event into the application. Pointer position
data conveyed to the application by the driver in response to subsequent vertical
movement of the fingers is interpreted by the application as page up or page down
commands depending on the direction of the vertical movement. In response to the page
up or page down commands, the application moves information displayed within the window
in the appropriate direction.
Rotate Gesture
[0030] If the user contacts the touch surface 60 over an object displayed within an application
window with one finger and then subsequently contacts the touch surface with another
finger and moves that other finger in an arc while maintaining the touch surface contact
with the one finger, the driver recognizes the arcuate movement of the second finger
as a rotate gesture. The driver in turn injects a rotate command into the application
causing the application to rotate the object about the contact point defined by the
first finger in the direction of the arc and by an amount equivalent to the path of
the arc.
Zoom Gesture
[0031] If the user contacts the touch surface 60 with a pair of closely spaced fingers simultaneously
over an application window and expands the distance between the fingers in a generally
horizontal direction, the driver recognizes the finger movement as a zoom-out gesture.
The driver in turn injects a zoom-out command into the application causing the application
to expand the size of the information presented in the application window. If the
user contacts the touch surface 60 with a pair of spaced fingers simultaneously over
an application window and moves the fingers in a generally horizontal direction towards
one another, the driver recognizes the finger movement as a zoom-in gesture. The driver
in turn injects a zoom-in command into the application causing the application to
reduce the size of the information presented in the application window.
[0032] Alternatively, the zoom-out and zoom-in commands may be represented by other gestures.
For example, if the user contacts the touch surface 60 with a clawed hand having its
fingers bunched together over an application window and expands the hand by extending
the fingers outwardly, the driver recognizes the finger movement as the zoom-out gesture.
[0033] If the user contacts the touch surface 60 with a generally flat hand having its fingers
extended over an application window and contracts the hand by clawing the fingers
inwardly to bunch them together, the driver recognizes the finger movement as the
zoom-in gesture.
Expand Gesture
[0034] If the user contacts the touch surface 60 with a pair of closely spaced fingers simultaneously
over an application window and expands the distance between the fingers in a generally
diagonal direction, the driver recognizes the finger movement as an increase window
size gesture. The driver in turn injects an increase window size command into the
application causing the application to expand the size of the application window.
If the user contacts the touch surface 60 with a pair of spaced fingers simultaneously
over an application window and moves the fingers in a generally diagonal direction
towards one another, the driver recognizes the finger movement as a decrease window
size gesture. The driver in turn injects a decrease window size command into the application
causing the application to reduce the size of the application window.
Icon Select and Open Gesture
[0035] If the user contacts the touch surface 60 with two closely spaced fingers simultaneously
over an icon, the driver recognizes the finger contact as a double-click gesture.
The driver in turn generates an open application command causing the desktop application
running on the computer 56 to open the selected application.
Object/Window Move Gesture
[0036] If the user moves a pair of closely spaced fingers above the touch surface 60 and
over an object displayed within an application window, the driver recognizes the hovering
finger movement as a translate object gesture. The driver in turn injects a translate
object command into the application causing the application to translate the displayed
object in the direction of and by an amount equal to the distance the fingers are
moved.
[0037] If the user moves three closely spaced fingers above the touch surface 60 and over
an application window, the driver recognizes the hovering finger movement as a translate
window gesture. The driver in turn generates a translate window command causing the
desktop application running on the computer 56 to translate the application window
in the direction of and by an amount equal to the distance the fingers are moved.
[0038] Although the above gestures are described as being recognized in response to multiple
finger contacts or hovers, the same gestures can be recognized if other objects are
used to perform the gestures. For example, multiple pen tools can be used to perform
the gestures or alternatively a finger and a pen tool can be used to perform the gestures.
[0039] Also, recognized gestures may be enhanced using different pointer characteristics.
For example, in the case of scroll gestures, the angle at which the pointers contact
the touch surface 60 may be used to determine the rate at which the displayed information
is scrolled. Pointers contacting the touch surface 60 at a steep angle may represent
a slow scroll rate whereas pointers contacting the touch surface 60 at a shallow angle
may represent a fast scroll rate.
[0040] If the touch system is able to differentiate between the type of pointers used to
contact the touch surface 60 as is described in co-pending U.S. Patent Application
Serial No. 10/384,783 filed on March 11, 2003 and/or is able to determine pointer
characteristics as is described in co-pending U.S. Patent Application Serial No. 10/294,917,
filed on November 15, 2002, the contents of which are incorporated herein by reference,
different functionality can be assigned to similar gestures that are performed using
different pointers. For example, in the case of the rotate gesture described above,
if the same gesture is carried out using a finger to initially contact an object within
the application window and a pen tool to describe the arc, the driver recognizes the
finger contact and pen movement as a pattern fill gesture rather than a rotate gesture.
A finger contact and subsequent closely spaced pen tool contact may represent a draw
circle gesture rather than a scroll gesture and a finger contact and subsequent closely
spaced eraser contact may represent an erase page gesture. As will be appreciated,
being able to differentiate between multiple pointers brought into proximity with
the touch surface 60 significantly increases the functions that may be invoked by
performing the same gestures simply by using discrete pointers that can be differentiated.
[0041] Although the driver is described as examining the pointer data to determine if the
pointer data is generated in response to a known gesture, it will be appreciated by
those of skill in the art that if the active application being executed by the computer
has the capability of recognizing gestures, the pointer data may be conveyed to the
active application for gesture recognition.
[0042] If desired the touch surface 60 may be partitioned into multiple regions to enable
multiple users to interact with the touch surface simultaneously without ambiguity
between user input. In this case multiple contacts on or hovers over the touch surface
that are beyond a threshold distance are treated as multiple user inputs. Multiple
contacts on or hovers over the touch surface that are within the threshold distance
are treated as multiple contacts made by a single user and are examined to determine
if the multiple contacts represent a gesture.
[0043] Although preferred embodiments of the present invention have been described, those
of skill in the art will appreciate that variations and modifications may be made
without departing from the spirit and scope thereof as defined by the appended claims.
1. A gesture recognition method comprising the steps of:
displaying an image on a touch surface;
detecting pointer contacts on said touch surface and examining said pointer contacts
to recognize multiple pointer contacts representing a gesture; and
when multiple pointer contacts representing a gesture occur, updating the displayed
image in accordance with said gesture.
2. The method of claim 1 wherein multiple pointer contacts representing a gesture include
multiple finger contacts on said touch surface.
3. The method of claim 1 wherein multiple pointer contacts representing a gesture include
a finger contact on said touch surface and an object contact on said touch surface.
4. The method of claim 1 wherein multiple pointer contacts representing a gesture include
multiple object contacts on said touch surface.
5. The method of claim 1 wherein multiple pointer contacts representing a gesture include
multiple finger contacts on said touch surface, a finger contact on said touch surface
and an object contact on said touch surface, and/or multiple object contacts on said
touch surface.
6. The method of claim 1 wherein said gesture represents a right-click event.
7. The method of claim 6 wherein said right-click event is represented by a first pointer
contact on a displayed application, and a subsequent second pointer contact adjacent
said first pointer contact.
8. The method of claim 6 wherein said right-click event is represented by a first pointer
contact on a displayed application, and a subsequent second pointer contact that occurs
within a threshold distance of said first pointer contact and while said first pointer
contact is maintained.
9. The method of claim 1 wherein said gesture is represented by simultaneous pointer
contacts on said touch surface.
10. The method of claim 9 wherein said simultaneous pointer contacts are simultaneous
finger contacts on said touch surface.
11. The method of claim 9 wherein said simultaneous pointer contacts on said touch surface
represent a scroll event, the direction of movement of the pointers over said touch
surface subsequent to contact on said touch surface determining the direction of scroll.
12. A gesture recognition method comprising the steps of:
detecting multiple pointers in close proximity to a touch surface to determine if
said multiple pointers are being used to perform a known gesture; and
when said multiple pointers are being used to perform a known gesture, executing a
command associated with said gesture.
13. The method of claim 12 wherein during said detecting, pointer contacts with or close
pointer hovers over said touch surface are detected to determine if a known gesture
is being performed.
14. The method of claim 13 wherein said multiple pointers include multiple fingers, at
least one finger and at least one object, and multiple objects in close proximity
to said touch surface.
15. The method of claim 13 wherein during said detecting the multiple pointers are examined
to determine if one of a number of known gestures is being performed, each known gesture
being associated with a different command.
16. The method of claim 15 wherein the movement of the multiple pointers relative to the
touch surface determines the gesture being performed.
17. The method of claim 15 wherein the pointer type determines the gesture being performed.
18. The method of claim 15 wherein the movement of the multiple pointers relative to the
touch surface and the pointer type determines the gesture being performed.
19. An input detection method in an interactive system capable of detecting movement of
multiple pointers generally simultaneously within an input region, said method comprising
the steps of:
capturing images looking generally across said input region;
analyzing said images to detect multiple pointers within said input region;
when multiple pointers are detected, examining data associated with said multiple
pointers to determine if the data represents an input gesture; and
when the data represents an input gesture, executing a command corresponding to the
recognized input gesture.
20. A touch system comprising:
a touch surface to be contacted by at least one pointer;
at least one imaging device having a field of view looking generally across said touch
surface; and
at least one processor communicating with said at least one imaging device and analyzing
images acquired by said at least one imaging device to determine the location on said
touch surface where pointer contacts are made, when said touch surface is contacted
by multiple pointers, said processor examining said multiple pointer contacts to determine
if said multiple pointer contacts represent a gesture and when said multiple pointer
contacts represent a gesture, said processor executing a command associated with said
gesture.
21. A touch system according to claim 20 wherein a first pointer contact followed by a
subsequent second pointer contact adjacent said first pointer contact represents a
gesture.
22. A touch system according to claim 20 wherein at least two simultaneous pointer contacts
represents a gesture.
23. A touch system according to claim 20 wherein each gesture is represented by specified
multiple pointer actions.
24. A touch system according to claim 23 wherein each gesture is further represented by
pointer type.
25. An interactive input system comprising:
at least one imaging device having an input region within its field of view into which
one or more pointers is moved to generate user input; and
at least one processor communicating with said at least one imaging device and analyzing
each image acquired by said at least one imaging device to determine the action of
pointers in said input region, said at least one processor determining when multiple
pointer actions within said input region represent a gesture, when said multiple pointer
actions represent a gesture, said at least one processor executing a command corresponding
to said gesture.
26. An interactive input system according to claim 25 wherein each gesture is further
represented by pointer type.
27. In an interactive touch system, a method of simulating a right-click mouse event comprising
the steps of:
detecting a first pointer contact on a touch surface that represents a left-click
mouse event;
detecting when a subsequent second pointer contact on said touch surface occurs within
a threshold distance of said first pointer contact; and
generating a right-click mouse event in response to said detected second pointer contact.
28. The method of claim 27 wherein said second pointer contact must also occur during
said first pointer contact in order for said right-click mouse event to be generated.
29. The method of claim 28 wherein said second pointer contact must also occur to the
right of said first pointer contact in order for said right-click mouse event to be
generated.