`Logan et al.
`
`[54] SYSTEM AND METHOD FOR EMULATING
`A MOUSE INPUT DEVICE WITH A
`ToUCHPAD INPUT DEVICE
`[75] Inventors: James D. Logan, Windham, N.H.;
`Blair Evans, Idlewild, Mich.
`[73] Assignee: Microtouch Systems, Inc., Methuen,
`Mass.
`[21] Appl. No.: 780,446
`[22] Filed:
`Oct. 21, 1991
`
`[63)
`
`Related U.S. Application Data
`Continuation of Ser. No. 391,482, Aug. 9, 1989, aban
`doned.
`[51] Int. Cl* ............................................... G09G 3/02
`[52] U.S. Cl. ..................................... 345/157; 34.5/173
`[58] Field of Search ............... 340/706, 707, 709, 710,
`340/712, 724, 726, 341/20, 178/18, 19; 273/148
`B, 438, 434, DIG. 28; 74/471 XY; 200/6 A
`References Cited
`U.S. PATENT DOCUMENTS
`4,071,691 1/1978 Pepper .
`4,129,747 12/1978 Pepper .
`4,148,014 4/1979 Burson ............................ 273/148 B
`4,198,539 4/1980 Pepper .
`4,293,734 10/1981 Pepper .
`4,302,011 11/1981 Pepper .
`4,313,113 11/1982 Thornburg .......................... 340/709
`
`[56]
`
`||||||||||||||||||||||||||||||||||||
`US005327161A
`[11] Patent Number:
`5,327,161
`[45] Date of Patent:
`Jul. 5, 1994
`
`4,371,746 2/1983 Pepper .
`4,430,917 2/1984 Pepper .
`4,734,685 3/1988 Watanable ........................... 340/706
`4,766,423 8/1988 Ono et al. ........................... 340/709
`FOREIGN PATENT DOCUMENTS
`2139762 12/1984 United Kingdom .
`OTHER PUBLICATIONS
`Foley et al; “Fundamentals of Interactive Computer
`Graphic”; Addison-Wesley Publishing Company; 1982;
`80–83 and 212-215.
`Primary Examiner—Alvin E. Oberley
`Assistant Examiner—Chanh Nguyen
`Attorney, Agent, or Firm—Joseph S. Iandiorio
`[57]
`ABSTRACT
`A system and method for emulating a mouse input de
`vice with a touchpad input device having a drag switch
`and touch device in which the direction of movement of
`the touch device across the touchpad surface is deter
`mined, a display cursor is caused to move in the same
`relative direction as the direction determined by the
`touch device, and the cursor movement is continued in
`that same relative direction either in or out of a drag
`mode, even after the touch device stops moving so as to
`allow the cursor to be moved a greater distance than the
`touch device.
`
`38 Claims, 10 Drawing Sheets
`
`76
`
`Hold cursor | No
`
`there
`
`Yes
`
`Read x,y
`point
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Compute touch
`walocity ond
`direction
`
`£ursor movement on
`display = f(touch velocity
`+ direction)
`
`ls
`touch in
`border
`dred 2
`
`
`
`Continue cursor
`movement on display =
`f(touch velocity +
`direction)
`
`
`
`
`
`Stop cursor
`frowt finent
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 1 of 10
`
`5,327,161
`
`
`
`Form of Ond
`Hondshoke
`Firmware
`
`~ 2
`
`| Formot ond
`Hondshake
`Firmwore
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 2 of 10
`
`5,327,161
`
`
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 3 of 10
`
`5,327,161
`
`76
`
`
`
`Hold Cursor
`in ploce
`
`
`
`
`
`
`
`?
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ls
`there
`liftoff
`º
`
`Compute touch
`velocity and
`direction
`
`Cursor movement on
`display = f(touch velocity
`+ direction)
`
`|s
`touch in
`border
`ared 2
`
`
`
`Continue cursor
`movement on display=
`f(touch velocity+
`direction)
`
`
`
`94
`
`Stop cursor
`movement
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 4 of 10
`
`5,327,161
`
`96
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ls
`touch in
`border
`ored 2
`
`Compute touch
`velocity, TV, glong
`oxis,A, porolleling
`toblet edge touched
`
`
`
`
`
`
`
`ls
`there
`liftoff
`
`
`
`
`
`
`
`Change speed of cursor
`travel in dimension A,
`noted by SA such that:
`SAnew *SAoriginal"f"v)
`
`
`
`
`
`
`
`Signal button
`down; enter
`drog mode
`
`
`
`|S
`mechonicol
`button
`down"?
`
`Go to Fig. 3A, step 72
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 5 of 10
`
`5,327,161
`
`'?
`
`
`
`
`
`
`
`Hold cursor
`
`Compute touch
`velocity, TV . and
`direction, TD
`
`Y“
`Hos
`cursor
`
`stopped
`?
`
`Hos
`touchdown
`
`°c°”"ed
`
`Cursor movement
`
`on display, CM,
`
`iS=f(TV,TD)
`
`Read "Friction"
`
`
`
`
`
`setting mode
`by user, Fu
`
`FIG. 4
`
`GOOGLE EX. 1009
`
`Google V. Philips
`
`
`
`Continue cursor
`movement such that
`
`Cm in time period t, is:
`
`
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 6 of 10
`
`5,327,161
`
`
`
`ls
`there
`touchdown
`2
`
`Redd x,y
`origin point
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`2
`No
`72
`Read subsequent
`touch point
`
`Compute distance
`to origin, Do
`
`Compute direction
`to origin, DD
`
`Set cursor speed, Cs,
`such tho?:
`Cs = f(Do)
`
`18O
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ls
`there
`liftoff
`2
`
`Yes
`
`
`
`Set cursor's direction
`of motion, CD, such that:
`CD=f(DD)
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 7 of 10
`
`5,327,161
`
`262
`
`__2‘5°
`
`
`
`
`
`mechanical
`bufion
`—down
`
`
`
`Use cursor location
`
`algorithm with no
`. dragging
`
`Set software button down
`
`357
`
`.
`Use cursor location
`
`268
`
`
`
`algorithm while
`
`dragging
`
`270
`
`275
`
`Press $ drag set;
`toggle software
`button down
`
`Set software
`bum,“ up
`
`
`
`° Use cursor location
`algorithm with drag
`
`'
`
`230
`
`GOOGLE EX. 1009
`
`Google V. Philips
`
`N
`
`
`
`
`
`there
`liftoff
`9
`‘
`
`Y
`
`es
`
`278
`
`FIG. 6
`
`282
`
`6 Drag complete
`
`
`
`
`mechanical
`a distance greater
`
`button still
`than the "press$
`
`down ?
`drag" distance
`
`
` 274
`N°
`Yes
`
`
`
`
`
`
`
`cursor moved
`
`I I I I I I I I I
`
`300-/I
`
`I I I I I I
`
`I I I I I
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 8 of 10
`
`5,327,161
`
`"
`
`
`0
`356
`354
`Use cursor location
`
`
`
`364
`
`
`
`
`mechanical
`algorithm with no
`button
`dragging
`down
`
`?
`
`
`
`ls
`
`360
`
`
`
`
`
`finger
`in border
`
`area?
`
`
`
`Use cursor location
`
`algorithm with
`dragging
`
`Use cursor location
`
`
`
`algorithm with
`dragging
`
`
`
`
`
`
`
`there
`
`touchdown
`
`
`Is
`
`
`elapsed
`time since ti
`< time out
`
`allowed?
`
`
`
`FIG. 7
`
`GOOGLE EX. 1009
`
`Google V. Philips
`
`
`
`Terminate
`drag action
`
`No
`
`374
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 9 of 10
`
`5,327,161
`
`390
`
`Use Cursor location
`º no
`rogging
`
`mechdnicol
`button
`down
`
`
`
`
`
`
`
`394
`
`396
`
`
`
`
`
`
`
`
`
`4O2
`
`ls
`there
`touchdown
`before
`timeout
`2
`
`Terminote
`drag
`sequence
`
`404
`
`Yes
`
`Algorithm 3OO,
`Fig. 6
`
`ls
`there
`liftoff
`7
`
`FIG. 8
`
`4OO
`
`-
`Use Cursor location
`algorithm with drag
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`U.S. Patent
`
`July 5, 1994
`
`Sheet 10 of 10
`
`5,327,161
`
`mom
`
`mmm
`
`9.53:8233
`
`
`
`9.cotan.
`
`cotan.
`
`wczou
`
`_ooEo:umE
`
`.ow.Summ:
`
`
`
`.E£_..oa_oco:cuo_
`
`mcoo9:38..oz
`
`
`
`Esovcozzn
`
`9:39..
`
`
`
`22;E£:oa_o
`
`SoscomEm
`
`
`
`9.cotao
`
`...\
`
`232o96..
`
`..muc2m_u
`
`m_
`
`_ouEc:uoE.
`
`::w522.
`
`csoo
`
`mmm
`
`~..
`
`mm»
`
`m.
`
`co:ouo_Emsumm:
`
`9__3Eo
`
`~..
`
`
`
`:288:3m.a_::s_.o_._8o5::m52.5Q_o:m..>on%m..oo.mw.m
`
`
`EsauBE;uwzozomwxozm5.8..
`_ou_E..EomE233E£_.oa_u_oo_co;omES_H
`
`
`
`
`
`co:ouo_.om._..omm:
`
`
`
`2...;e.:_.o2o
`
`9._3o:.
`
`aGE
`
`oom
`
`GOOGLE EX. 1009
`
`Google V. Philips
`
`BostonEmmm»
`
`:o:ouo_533mm:
`
`
`
`um>oE.om:.u
`
`
`
`:9:869aoo:2m_c
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`
`
`
`
`
`
`
`
`
`
`1
`
`5,327,161
`
`2
`It is a further object of this invention to provide such
`a system and method in which the cursor may be
`dragged long distances without holding the drag button
`down.
`
`SYSTEM AND METHOD FOR EMULATING A
`MOUSE INPUT DEVICE WITH A TOUCHPAD
`INPUT DEVICE
`
`This is a continuation of application Ser. No.
`07/391,482, filed Aug. 9, 1989, now abandoned.
`FIELD OF INVENTION
`
`This invention relates to a system and method for
`emulating a mouse input device with a touchpad input
`device and more particularly to such a system and
`method in which the display cursor may be moved long
`distances with the drag button up or down with but a
`single stroke of the touchpad.
`BACKGROUND OF INVENTION
`
`touch-sensitive
`Touchpad input devices are small,
`devices that can be used to replace the mouse cursor
`locator/input device in mouse-driven personal comput-
`ers. The touchpad typically includes a small touch-sen-
`sitive screen anywhere from one by two inches up to
`three by five inches; the touchpad output is an analog
`signal representative of the location of the touching
`device on its surface. The computer system employs
`this information in placing the cursor on the CRT dis-
`play. Touchpads may be used as absolute cursor loca-
`tion devices in which the cursor is placed in the same
`relative location as that of the touch device on the
`touchpad screen. When used as an absolute positioning
`device, however, the touchpads make precise cursor
`location difficult due to the small screen size.
`Touchpads are more typically used as relative cursor
`positioning devices in which the cursor is moved across
`the display using one or more strokes of the touchpad
`surface; the cursor movement is related in some manner
`to the movement of the touchpad device across the
`surface. However, in order to move the cursor long
`distances, multiple strokes of the touchpad surface are
`required. In the smaller touchpads, the problems associ-
`ated with multiple strokes are magnified due to the
`short maximum stroke distance.
`Touchpad devices typically include a switch or “but-
`ton” on the lower side of the pad which, when pressed,
`is used to emulate the selection function of the button on
`a mouse. When the operator desires to “drag” the cur-
`sor across the display, the button must be held down.
`When the cursor must be moved relatively long dis-
`tances, necessitating multiple touchpad strokes,
`it
`is
`difficult or impossible to hold the drag button down to
`prevent release of the button and termination of the
`drag sequence while
`accomplishing the multiple
`strokes. If the finger is simply lifted from the screen, the
`drag sequence will terminate and must again be started.
`Even if the cursor can be dragged with a single touch-
`pad stroke, it is extremely difficult to maintain sufficient
`pressure on the touchpad to hold the button down while
`sliding the finger across the touchpad surface. Conse-
`quently, in using touchpad devices for dragging, the
`drag sequences are frequently unintentionally termi-
`nated.
`
`SUMMARY OF INVENTION
`
`It is therefore an object of this invention to provide a
`system and method for emulating a mouse input device
`with a touchpad input device in which the cursor may
`be moved long distances with a single stroke.
`
`It is a further object of this invention to provide such
`a system and method in which the cursor may be
`dragged without maintaining finger contact with the
`touchpad device.
`This invention results from the realization that rela-
`tive positioning touchpad devices can be dramatically
`improved to allow long distance cursor movement in or
`out of drag mode by maintaining the cursor movement
`in the same relative direction as a touchpad stroke after
`the stroke is terminated.
`This invention features a system and method for emu-
`lating a mouse input device with a touchpad input de-
`vice in which the cursor movement continues after
`completion of a touchpad swipe whether in or out of the
`drag mode,
`to allow the cursor to be exactly and
`quickly positioned.
`
`DISCLOSURE OF PREFERRED EMBODIMENT
`
`Other objects, features and advantages will occur
`from the following description of a preferred embodi-
`ment and the accompanying drawings in which:
`FIG. 1A is a hardware block diagram of a computer
`system employing a mouse-replacement touchpad for
`the system and method according to this invention;
`FIG. 1B is a block diagram of the software for the
`computer system of FIG. IA including the mouse emu-
`lation system according to this invention;
`FIG. 2A is a schematic side elevational view of a
`touchpad input device illustrating a touch-sensitive
`bezel of the system and method according to this inven-
`tion;
`FIG. 2B is a schematic top plan view of the touchpad
`device of FIG. 2A illustrating the designated perimeter
`areas of the system and method according to this inven-
`tion;
`FIGS. 3A, 3B and 3C are flow charts of the portion
`of the mouse emulation system and method according
`to this invention for maintaining cursor travel after the
`touch device stops moving using the touchpad device of
`FIGS. 2A and 2B;
`FIG. 4 is a flow chart of the portion of the mouse
`emulation system and method according to this inven-
`tion in which the cursor continues moving across the
`screen even after touch device liftoff;
`FIG. 5 is a flow chart of the portion of the mouse
`emulation system and method according to this inven-
`tion in which the cursor velocity is proportional to the
`distance of touch device movement;
`FIG. 6 is a flow chart of the portion of the mouse
`emulation system and method according to this inven-
`tion in which the touchpad drag button is held in the
`down position after the mechanical button has been
`lifted;
`FIG. 7 is a flow chart of the portion of the mouse
`emulation system and method according to this inven-
`tion in which the drag button is held down for a prede-
`termined time after device liftoff from a border area;
`FIG. 8 is a flow chart of the portion of the mouse
`emulation system and method according to this inven-
`tion in which the drag button is held down for a prede-
`termined time after device liftoff; and
`FIG. 9 is a flow chart of the portion of the mouse
`emulation system and method according to this inven-
`
`l0
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`GOOGLE EX. 1009
`
`Google V. Philips
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`5,327,161
`
`3
`tion in which the drag button is toggled down after its
`release and toggles up when it is again pressed.
`This invention may be accomplished in a mouse emu-
`lation system and method for use with a microcomputer
`employing a touchpad cursor location/input device.
`The system and method according to this invention
`provides for long-distance cursor movement in or out of
`the drag mode without the need for the multiple strokes
`required by the existing touchpad devices.
`There is shown in FIG. 1A microcomputer system 10
`for use in the system and method according to this
`invention. Microcomputer
`system 10 includes mi-
`crocomputer 12 with CRT 14, which together may be
`included in for example an Apple Macintosh SE.
`Touchpad 20 may be a capacitive-type touchpad of the
`type known in the art. These touchpads employ minia-
`turized touch screen technology, which is disclosed
`generally in U.S. Pat. Nos. 4,071,691; 4,129,747;
`4,198,539;
`4,293,734;
`4,391,746;
`4,302,011;
`and
`4,430,917, all by Pepper, Jr., incorporated herein by
`reference. Touchpad controller 18 is the hardware in-
`terface between touchpad 20 and microcomputer 12.
`Touchpad 20 is typically operated with a conductive
`device such as a stylus or finger. Touchpad 20 can be
`either a relative or absolute cursor movement device
`similar to mouse 24, which is the pointer/input device
`typically used in microcomputer systems. Mouse 24 has
`mouse button 25 for accomplishing mouse-controlled
`functions such as menu pull down and selection and
`icon selection and use, for example. Two and three
`button mice are also used; the second and third buttons
`have assigned functions chosen by the manufacturer.
`The nature of mice and the mice button(s) are well
`known to those skilled in the art.
`FIG. 1B is a block diagram of the software for use in
`microcomputer system 10, FIG. IA. Touchpad control-
`ler 18 includes touch point digitizer 34 for interpreting
`and digitizing the pad touches; the sensed voltages are
`converted to a digital representation of the X and Y
`points. Format and handshake firmware 36 is responsive
`to touch point digitizer 34 for interfacing with similar
`firmware 37 in computer 12. Computer 12 also includes
`mouse emulator 38 according to this invention and
`graphical interface 32 for interpreting cursor location
`and mouse button emulation signals. Touch point digi-
`tizer 34, format and handshake firmware 36, touchpad
`controller 18 and relative-positioning touchpad 200 are
`available from MicroTouch Systems, Inc., of Wilming-
`ton, Mass. Graphical
`interface 32 is resident
`in mi-
`crocomputer 12 and visually presents through CRT 14a
`the operating system and applications, for example the
`windows and icons. Interface 32 interprets cursor posi-
`tion and mouse button signals from emulator 38, as will
`be described with more particularity below.
`Touchpad device 50 for use in this invention is shown
`in FIGS. 2A and 2B. Device 50 typically includes on its
`upper surface touch-sensitive screen 54 inside of perim-
`eter area surface 56 including bezel 59. The output of
`touchpad device 50 is typically an analog signal repre-
`sentative of the X and Y locations of the touch device
`contacting screen 54. Touchpad 50 may be either a
`relative or absolute cursor positioning device.
`Touchpad 50 further includes drag button 58 for
`producing a signal to initiate and terminate the drag
`mode; the drag button and mode are well known to
`those skilled in the art. Switch 58 is typically a mechani-
`cal switch which moves in the direction of arrow 61
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`when screen 54 is pressed down. Thus, in order to initi-
`ate dragging, the operator simply presses on screen 54.
`In existing touchpad devices, the system remains in
`drag mode only as long as switch 58 is closed. Thus, if
`the operator desires to drag the cursor across the CRT
`screen, he must drag his finger across screen 54 while
`maintaining sufficient force to close switch 58. This
`makes operation of touchpad device 50 in the drag
`mode somewhat awkward. Further, with a relative
`positioning touchpad device, if the operator desires to
`drag the cursor for a long distance across the screen, he
`must make multiple screen strokes. However, if the
`finger is lifted from screen 54, switch 58 will open and
`signal the system to leave the drag mode. Thus, in rela-
`tive-positioning touchpad devices, dragging over long
`distances typically requires the operator to hold touch-
`pad device 50 down on a table with one hand while
`stroking screen 54 with the other hand.
`Two features of this invention which allow touchpad
`50 to be more easily used in the drag mode are illus-
`trated in FIGS. 2A and 2B. These will be described
`with particularity below. Touchscreen 54 may include
`designated perimeter area 62, defined by dashed line 63,
`for providing continued cursor movement even after
`the touch device stops moving. An alternative to desig-
`nated perimeter 62 is touch-sensitive strip 60 mounted
`to bezel 59. The advantages of the strip over the desig-
`nated area are that it takes no touchpad space and pro-
`vides definitive tactile feedback exactly when the user
`has touched the “border” area. If employed in touchpad
`50, touch-sensitive strip 60 would preferably cover all
`four bezel surfaces; strip 60 is shown covering only one
`bezel surface for purposes of illustration. Strip 60 may
`be a piezoelectric element or other touch-sensitive de-
`vice known in the art which senses when the finger or
`touch device reaches the edge of screen 54. The signal
`from strip 60 is employed in maintaining cursor move-
`ment across the screen as is more fully described below
`in conjunction with FIGS. 3A, B and C.
`FIGS. 3A and 3B illustrate system 70 according to
`this invention for continuing cursor movement after the
`touch device stops moving across the touchpad surface.
`After the start, step 72, in steps 74 and 76 the cursor is
`held in place awaiting touch device touchdown. When
`touchdown occurs, the X, Y device location is read,
`step 78, and the cessation of screen contact, called lift-
`off, is monitored, step 80. If liftoff occurs, the operation
`is looped back to step 74.
`If contact continues, subsequent X, Y points are read,
`step 82, and velocity and direction of movement of the
`touch device across the screen is computed, step 84.
`Since system 70 is employed in touchpads used as rela-
`tive positioning devices, the computed finger direction
`is simply based on the initial and subsequent X and Y
`points; in relative positioning touchpads the cursor is
`moved across the screen in the same relative direction
`as the finger movement across the touchpad screen, as is
`known to those skilled in the art. The velocity is com-
`puted as a function of the change in distance over
`elapsed time.
`Operation continues to step 86, in which the cursor
`movement is established as a function of the touch ve-
`locity and direction, described above. When the touch
`is in the touchpad border area, which may be either
`designated surface area 62, or the touch is in contact
`with touch-sensitive strip 60, FIGS. 2A and 2B, opera-
`tion proceeds to step 90, in which the cursor movement
`is continued at the same speed and direction that it was
`
`-
`
`GOOGLE EX. 1009
`
`Google V. Philips
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`5
`traveling before the finger went into the border area.
`Thus, the operator may establish the direction and ve-
`locity of cursor movement with a short screen swipe
`ending in perimeter area 62 or in contact against bezel
`59.
`
`Border Designated perimeter area 62 may be estab-
`lished by creating a look-up table in which the touchpad
`screen locations corresponding to the border area re-
`side. In that case, when the finger is in the border area,
`the cursor continues moving in the relative direction
`and velocity established by the finger movement before
`it entered the border area. Touch-sensitive strip 60 on
`bezel 59 is used in the same manner as border area 62,
`and has the advantage of allowing the entire touchpad
`screen to be used for cursor positioning.
`If the touch device does not enter the border area,
`operation returns to step 78 for allowing the operator to
`alter the cursor direction and velocity by changing the
`direction and velocity of finger movement on the
`touchpad screen. If the touch is in the border area,
`operation proceeds to step 92,
`in which the system
`monitors for device liftoff. If liftoff occurs, cursor
`movement is stopped. Thus, to move the cursor across
`the screen, the operator may make a short swipe ending
`in the border area to establish cursor velocity and direc-
`tion. The cursor will then continue moving in that di-
`rection at that velocity until the finger is lifted from the
`screen. Alternatively, the cursor control may be re-
`gained by simply sliding the finger back into the relative
`positioning screen area inside of perimeter area 62.
`The continuing cursor movement is illustrated begin-
`ning in step 96, in which the X, Y finger touchpoint is
`read. If the touch is not in the border area, step 98,
`operation proceeds back to step 78. Steps 100 and 102
`are preferably included in system 70; however, these
`steps are not necessary for accomplishing the continu-
`ing cursor movement described above. Steps 100 and
`102 are added to allow the user to alter the cursor direc-
`tion when in the border or perimeter area. This is ac-
`complished by computing the finger velocity T, along
`axis A, which is parallel to the screen edge touched,
`step 100. In step 102, the velocity of cursor travel in
`direction A is changed as a function of the touch veloc-
`ity T,..
`What steps 100 and 102 accomplish may be described
`as follows. System 70 imparts a direction and velocity
`to the cursor based on the finger direction and velocity.
`When the finger enters the border area, the system
`continues the cursor movement in that direction at that
`velocity until the finger is lifted from the screen. With
`the inclusion of steps 100 and 102, the user may slide his
`finger in a direction parallel to the screen edge while in
`the border area or against
`the touch-sensitive strip,
`whichever is appropriate, to change the direction of
`cursor movement. As an example, if the operator has
`established a cursor movement horizontally to the right
`by a horizontal screen stroke to the right ending in the
`border area or against the bezel, the user may impart a
`vertical component to the horizontal motion by sliding
`his finger up or down. In this example, dimension A
`would be the vertical or Y direction, and the velocity of
`cursor movement in that dimension would be changed
`from zero to some finite value related to the speed of
`finger movement in direction Y. Step 104 completes the
`cursor steering loop. The cursor movement is stopped,
`step 94, on lifting of the finger from the screen.
`FIG. 3C illustrates a further system 105 according to
`this invention for operating system 70 in drag mode. In
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,327,161
`
`6
`step 107, drag button 58, FIGS. 2A and 2B, is moni-
`tored. The mouse button drag mode is well known to
`those skilled in the art If the button is “down”, or en-
`gaged, caused by sufficient pressure on the touchpad
`device, operation proceeds to step 108 in which the
`system provides a button down signal to graphical inter-
`face 32, FIG 1B. This signal causes interface 32 to begin
`operating in the drag mode, in which the cursor may be
`dragged across the display. Operation then proceeds to
`the start of system 70 for cursor location in the drag
`mode. If the drag button is not engaged, at step 109
`operation proceeds to step 70 for cursor location, and
`the button monitor loop is completed through step 107.
`Thus, the system and method according to this inven-
`tion provides for continuing cursor movement either in
`or out of the drag mode.
`illustrates the system and
`Algorithm 120, FIG. 4,
`method according to this invention for providing cursor
`direction and velocity with a short swipe of the touch-
`pad, such cursor motion continuing after liftoff,
`in
`which the overall cursor movement distance may be
`established by the user. In steps 124 and 126 the cursor
`is held in place until touchdown is sensed. In steps 128
`and 130, the system monitors for continuing touch.
`When there is continuing touch and the operator’s fin-
`ger has moved, at step 132 the subsequent touch point is
`read and the touch velocity and direction are computed,
`step 134. In step 136, the system causes the cursor to
`move in a direction and velocity related to the touch
`direction and velocity; that operation is the same as that
`described in FIG. 3A.
`
`When the device is lifted off, step 138, operation
`proceeds to step 140 in which the “friction” setting F"
`is read from lookup table 139. “Friction” is a term used
`to describe the cursor travel distance after liftoff in
`relation to touch velocity at liftoff. The concept is simi-
`lar to creating a friction in the pad. When the friction is
`relatively high, the cursor will only slide a short dis-
`tance after liftoff before coming to a halt. If the friction
`is set relatively low, the cursor will slide a long distance
`before coming to a halt. The “friction” setting, F“, is
`simply a relative setting and may be established on a
`relative scale, for example, friction settings of l to 10.
`The operator may then choose a friction setting based
`on the operator’s expertise and the amount of cursor
`movement which will be required in operating the pro-
`gram. The system interprets the friction setting and in
`effect establishes a total cursor movement distance after
`liftoff as a function of the velocity at liftoff and the
`friction setting. Thus, the effect of the “friction” starts
`on liftoff; before that, the cursor movers in a relative
`fashion. At step 142, the cursor velocity Cm, at time t, is
`established as a function of its velocity at an earlier
`moment, Cm,-1, modified by the lost speed due to
`friction, shown as a function of F“. The direction re-
`mains constant.
`Operation proceeds to steps 144 and 146, in which the
`cursor movement and further device touchdown are
`monitored. If the cursor is moving and a second touch-
`down occurs, the cursor is stopped, step 147, and opera-
`tion proceeds to step 128. Thus, the user may stop his
`“throw” of the cursor simply by tapping the screen. If
`the screen is not touched again, the system loops back
`through step 142 to continue the slow-down and even-
`tual halt of the cursor. The result of steps 142, 144 and
`146 is to slow and halt the cursor over a period of time
`related to the friction factor. Thus, the overall “throw”
`
`GOOGLE EX. 1009'
`
`Google V. Philips
`
`GOOGLE EX. 1009
`Google v. Philips
`
`
`
`5,327,161
`
`7
`of the cursor is related to finger velocity at liftoff and
`factor F...
`System 120 emulates a cursor positioning device
`called a trackball. The trackball is a device known in the
`art which employs a rotatable sphere to drive the dis-
`play cursor. The sphere is spun in a direction and veloc-
`ity established by the user, and the cursor is moved
`across the display in the same relative direction at a
`velocity related to the spin of the ball. A trackball may
`be given a hard spin, and when released may spin on its
`own due to its large mass. The ball eventually slows and
`stops due to its friction. The effect of system 120 is to
`emulate a trackball in that in both cases the cursor con-
`tinues to move after liftoff from the input device, and
`eventually halts of its own accord.
`FIG. 5 illustrates an alternative system and method
`according to this invention for moving the display cur-
`sor without performing the multiple strokes. After the
`start, step 162, a touchdown is monitored and the X-Y
`point read, steps 164 and 166. If liftoff occurs, step 168,
`the cursor is stopped, step 170, and operation returns to
`step 164. If liftoff does not occur, operation proceeds to
`step 172 in which a subsequent touch point is read. In
`steps 174 and 176 the distance and direction from the
`subsequent touch point to the origin or original touch
`point are computed. The cursor speed is set, step 178, as
`a function of the distance. Thus, when the user moves
`his finger on the pad, the cursor goes forward on the
`display at a rate which is proportional to the distance
`from the resting location or origin. In step 180, the
`cursor direction is set as a function of the direction of
`the finger movement to cause the cursor to move in the
`same relative direction as the finger. Liftoff is moni-
`tored, step l82, and if there is continuing contact the
`program continues at step 172. This loop provides the
`operator with the ability to alter the device direction
`and/or speed by moving his finger without lifting off
`from the screen. As an example, pulling the finger back
`towards the resting location or origin will reduce the
`cursor speed. Lifting off the pad returns the cursor to
`the resting position, step 170, and operation proceeds
`back to step 164 for monitoring of another touchdown.
`The operation of system 160 may be likened to a joy
`stick device. Wherever the user touches down on the
`touchpad screen, the system defines the position asthe
`equivalent of the resting position for the joy stick.
`When the user moves his finger on the pad, the cursor
`moves in a direction that corresponds to the direction
`the finger has moved relative to the resting location, at
`a rate which is proportional to the distance from the
`resting location, to simulate the operation of a joy stick.
`FIG. 6 discloses system and method 260 according to
`this invention which encompasses maintaining the drag
`mode after the mechanical drag button is lifted. This
`allows the operator to slide his finger along the touch-
`pad surface to move the cursor without having to main-
`tain sufficient pressure to keep closed the mechanical
`drag switch.
`After starting, step 262, operation proceeds to step
`264 in which the mechanical drag button is monitored
`for closure (the down position). If the button remains
`up, operation proceeds to step 266, in which the touch-
`pad would be used in a normal manner for cursor posi-
`tioning. When the user desires to enter the drag mode,
`he presses the touchpad with sufficient force to close
`the mechanical drag switch. Operation then proceeds
`into algorithm 300, which encompasses a series of oper-
`ations in which the mechanical drag button down posi-
`
`l0
`
`l5
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`65
`
`8
`tion is emulated and maintained even after the drag
`button has been released. This allows the operator to
`move the cursor by sliding his finger across the touch-
`pad surface without maintaining the force required to
`close the drag switch.
`Algorithm 300 includes first step 267 in which a “but-
`ton down” position is set to begin the drag mode. This
`“button down” position may be accomplished by pro-
`viding an equivalent mouse button down signal
`to
`graphical interface 32, FIG.'lB. Operation then pro-
`ceeds to step 268, in which the normal cursor location
`algorithm is employed to move the cursor in response to
`finger movements. The cursor location algorithm may
`be any of the cursor location algorithms known in the
`art.
`
`In step 270, the cursor movement is monitored. When
`the cursor has moved more than a predetermined dis-
`tance, called the “press and drag” distance, operation
`proceeds to step 276, in which the button down signal is
`toggle