Commit Graph

167 Commits

Author SHA1 Message Date
larissasmith
319d27f0c0 Fix image stuck to mouse when right-clicking and left-clicking simultaneously.
Mouseup and mousedown events are lost when two buttons are pressed at the same time. Pressing buttons in the order left-button down, right-button down (ignored), left-button up (ignored), right-button up was leaving drag state active.
2017-06-16 14:05:35 -06:00
Jose
70bdc8839e Some issues solved 2017-02-20 20:23:25 +01:00
Jose
d5b62aabcd Patch to fix issue #697, also contains improvements when panning under certain constrains 2017-02-19 17:36:53 +01:00
Antoine Vandecreme
de25b68b43 Add eslint and hound 2017-01-16 21:41:07 +01:00
Daniel Zimmermann
c25bf0a239 Correctly handle touch PointerEvents
`onPointerDown/Up` may call `capture/releasePointer`
with `"touch"` as the pointerType, which would result
in a bug as `touchCount` would be `undefined`.

`capture/releasePointer` should just default to a
count of `1` if not specified. This properly retains
the existing behaviour for non-TouchEvent handling.
2016-05-16 06:26:52 +10:00
Daniel Zimmermann
a4dbae0754 Handle simultaneous touch events
Found and tested on an iPhone 5s w/ iOS 9.2.
Not sure about other devices.

Fixes #877
2016-05-16 06:26:52 +10:00
Antoine Vandecreme
a12b74ec17 Fix @lends for new JSDoc. Fix polymorphic functions doc (#824). 2016-01-24 16:09:18 -05:00
Sebastian Öberg
8f9d2a9bfe Converted jsdoc to plain comments 2015-12-09 18:28:41 +01:00
Sebastian Öberg
2ab6f18cee Changed isInIframe to a variable for caching 2015-12-09 11:04:37 +01:00
Sebastian Öberg
703f922ed8 Fixed drag release outside of iframe when the iframe is on the same domain. 2015-12-08 11:22:29 +01:00
Javier Quevedo
f20d2ffa4d Fixed issue in iOS devices that would cause all touch events to fail after a Multitasking Gesture was triggered. The fix works by aborting all touch contacts after a touch has been cancelled, since the Multitasking Gestures in iOS trigger the TouchCancel event on those touches which were active.. 2015-10-16 15:52:20 +02:00
Antoine Vandecreme
606d25dbe6 Merge upstream. 2015-06-08 10:38:16 -04:00
Mark Salsbery
1da57564df Merge branch 'master' into mousetracker_defaulton
Conflicts:
	changelog.txt
	src/navigator.js
2015-01-21 11:18:52 -08:00
Mark Salsbery
545997bace MouseTracker now defaults to tracking on (#558) 2015-01-20 18:35:58 -08:00
Mark Salsbery
912f82d36d IE 11 fix and Merge branch 'master' into mousetracker_MSPointerEvent
Conflicts:
	changelog.txt
2015-01-20 13:28:30 -08:00
Mark Salsbery
3b01014ac8 Fixed pointer event model detection for IE 10 (#571) 2015-01-20 10:26:14 -08:00
Mark Salsbery
e87020cf78 Removed 'position' property from MouseTracker keyDownHandler/keyUpHandler/keyHandler functions
Positional data is not available in the corresponding DOM event objects
2015-01-20 09:48:28 -08:00
Mark Salsbery
2831771af5 MouseTracker - keyboard handling
1) MouseTracker - added keydown and keyup handlers
2) Modifier keys ignored in keyboard  navigation handlers (#503)
3) Arrow key navigation fixed across platforms (#565)
2015-01-16 16:26:30 -08:00
Mark Salsbery
8e5e2168c8 Ensure capture released in abortTouchContacts() 2015-01-16 08:33:34 -08:00
Mark Salsbery
cb56e352cf Mousetracker Improvements
1) MouseTracker - Simulated touchenter/touchleave events now bubble to parent element MouseTrackers
2) MouseTracker - Improved multitouch support in enter/exit event handlers
3) MouseTracker - orphaned tracked touch pointers removed (fix for #539)
4) MouseTracker - removed touchenter/touchleave event support since the events don't exist on any known platform and have been removed from the W3C specification
5) Removed Viewer onContainerPress/onContainerRelease handlers (and the associated 'container-release' event ) that were never fired due to the canvas (child) element capturing the DOM events
6) Added 'canvas-enter', 'canvas-exit', and 'canvas-press' events to Viewer
7) ButtonGroup - removed obsolete MouseTracker event handlers
2015-01-15 12:15:22 -08:00
Mark Salsbery
d26d3f9393 MouseTracker - Improved IE 9+ compatibility 2015-01-14 08:44:14 -08:00
Mark Salsbery
0d6fca35c1 Fix pointer type passed to capturePointer/releasePointer in pointer events model.
Remembered to change the test shim as well.
2015-01-12 16:08:26 -08:00
Mark Salsbery
83ff365121 Revert "capturePointer()/releasePointer() call fix for pointer event model"
This reverts commit d582a9563f.
2015-01-12 15:33:51 -08:00
Mark Salsbery
1c465ec59c Revert "Second attempt: capturePointer()/releasePointer() call fix for pointer event model"
This reverts commit 1bdb83dc58.
2015-01-12 15:33:18 -08:00
Mark Salsbery
1bdb83dc58 Second attempt: capturePointer()/releasePointer() call fix for pointer event model 2015-01-12 12:56:18 -08:00
Mark Salsbery
d582a9563f capturePointer()/releasePointer() call fix for pointer event model 2015-01-12 12:26:38 -08:00
Mark Salsbery
755854d3f7 Renamed non-primary button events/handlers 2015-01-12 11:02:54 -08:00
Mark Salsbery
30b5ec04c6 MouseTracker Improvements
* Exposed secondary pointer button (middle, right, etc.) events from MouseTracker and through viewer (#479)
* MouseTracker - Improved IE 8 compatibility
2015-01-10 14:49:02 -08:00
Mark Salsbery
b39d31a845 MouseTracker - Added explicit pointer capture for touch event model events 2014-12-31 14:30:10 -08:00
Mark Salsbery
8d4c776cd0 MouseTracker fixes for #502, #518, #527, #539 2014-12-30 12:57:17 -08:00
Ben Delarre
1d1b9bf01a Added support for pointer API so this now works in IE11. 2014-09-23 14:31:53 -07:00
Ben Delarre
f07108ec2d Updated implementation to better pass tests, still not 100% though. 2014-09-23 11:26:42 -07:00
Ben Delarre
7278793e5c Fixed notation for travis build. 2014-09-12 16:22:55 -07:00
Ben Delarre
2a8cb43d02 Fixes issue #464 by adding mouseout handler to document and calling mouseUp handler 2014-09-12 16:01:19 -07:00
Mark Salsbery
ee3ab70025 Combined redundant captureMouse()/capturePointer() and releaseMouse()/releasePointer() functions 2014-08-06 10:49:42 -07:00
Mark Salsbery
be13d25a26 Removed debug code 2014-08-05 16:17:40 -07:00
Mark Salsbery
3521bac90e Fixed pointer event capture, Cleaned up debug code 2014-08-05 13:56:18 -07:00
Mark Salsbery
c6bea68b4e Merge branch 'master' into IE9-MouseTracker-Clicks 2014-08-05 07:00:05 -07:00
Mark Salsbery
e11095968c Mousetracker Over/Out Tracking Fixes 2014-08-04 21:41:07 -07:00
Henri Astre
a563bdb658 fix .close() called after .destroy() + spacing 2014-06-18 10:35:23 -07:00
Henri Astre
764fa3e34a Fix memory leak while destroying the viewer. 2014-06-17 17:26:10 -07:00
esmondb
59ab6562d3 Removes unnecessary trailing commas which stops google's closure compiler. 2014-06-14 10:15:40 +01:00
Mark Salsbery
5b995eb04b Removed mousenter/mouseleave DOM Event Handling
Fixes #394

mouseenter/mouseleave are not implemented in Webkit very well, so
reverted to mouseover/mouseout.
2014-05-02 23:01:38 -07:00
Mark Salsbery
8232546d51 Merged upstream changes, fixed conflicts 2014-04-24 12:40:49 -07:00
Mark Salsbery
7567a657bd Add Double-Click/Tap Gesture to MouseTracker (#300)
Fix for enhancement #300
Added double-click/tap gesture detection to MouseTracker.with
corresponding dblClickHandler event callback.
Added unit test for double-click detection.
Added Viewer dblClickHandler handling to optionally zoom on
double-click.
2014-04-22 09:23:56 -07:00
Mark Salsbery
5860167d65 MouseTracker Touch Fixes - Flick Defaults and Bubbling
Flick gesture settings defaults set to better values.
Removed touch event model bubble cancelling so viewer controls show on
touch contact.
2014-04-20 18:19:32 -07:00
Mark Salsbery
8e119d66e5 Minor naming changes 2014-04-16 06:40:19 -07:00
Mark Salsbery
c2e7b376b0 pinchToZoom gesture option added, misc. fixes
changelog update.
pinchToZoom gesture option added.
Event unit tests cleaned up.
2014-04-15 19:19:47 -07:00
Mark Salsbery
9b15ca090b Fallback to mouseover/mouseout, 2014-04-15 13:04:08 -07:00
Mark Salsbery
09bfd55add MouseTracker fixes and tests
Separated event-model/device specific event handling code from
event-model/device agnostic event handling code.
Use enter/leave events instead of over/out events.
Updated unit tests for above changes.
Added unit tests for mouse gestures.
Updated changelog for breaking changes and deprecations.
2014-04-14 18:17:18 -07:00
Mark Salsbery
dc48a31412 Exposed gesture settings as options 2014-04-03 08:50:25 -07:00
Mark Salsbery
b8ea87d3f8 MouseTracker Fixes
Fixed mouse capture, should work on IE8 without IE8-specific code.
2014-04-01 18:27:54 -07:00
Mark Salsbery
2c8af72f5e Multi-Touch MouseTracker Fixes
Removed zoom on click for touch.
Added an isPrimary flag to gesture points.
Fixed documentation error and updated documentation and comments.
Implemented the stopHandler for mouse events.
2014-04-01 09:32:04 -07:00
Mark Salsbery
d324aea761 Multi-Touch MouseTracker Update
Refactored, fixed a couple bugs, unit tests working.

Issuing a pull request.
2014-03-31 12:54:37 -07:00
Mark Salsbery
1475f5865d Multi-Touch MouseTracker Update
Ready to pull request, merging upstream changes and running tests.
2014-03-29 17:02:24 -07:00
Mark Salsbery
f6dfe9b079 Multi-Touch MouseTracker Update 2014-03-21 11:45:20 -07:00
Mark Salsbery
d52df4a9bf Multi-Touch MouseTracker Update
Pinch gesture fixups
2014-03-15 17:12:13 -07:00
Mark Salsbery
7aa0df1b66 Multi-Touch MouseTracker Update
Pinch zoom update
2014-03-14 14:15:09 -07:00
Mark Salsbery
38cae86659 Multi-Touch MouseTracker Update 2014-03-14 10:42:22 -07:00
Mark Salsbery
c7ea247baa Initial commit - Multi-touch, pointer event MouseTracker 2014-03-10 11:49:51 -07:00
Mark Salsbery
930e8c4dfd Updated Doclets 2013-11-25 08:48:44 -08:00
Mark Salsbery
54049927f0 Updated doclets
Changed event docs:
Changed userData properties from optional to nullable.
Removed optional type from preventDefaultAction properties.
2013-11-18 06:56:32 -08:00
Mark Salsbery
70b91d57ec Updated doclets for jsdoc3
Updated so jsdoc3 parser picks everything up.
Added event docs.
Lots of documentation content needed...
2013-11-15 22:19:53 -08:00
Mark Salsbery
8e325a3748 Added preventDefaultAction flag to MouseTracker
Added a boolean preventDefaultAction property (default false) to the
event object passed to MouseTracker handler methods. Implemented in the
following MouseTracker subscribers:

* Viewer.keyboardCommandArea.innerTracker.focusHandler:
preventDefaultAction == true prevents scrolling viewer into view
* Viewer.keyboardCommandArea.innerTracker.keyHandler:
preventDefaultAction == true prevents viewer keyboard navigation
* Viewer.innerTracker.clickHandler: preventDefaultAction == true
prevents viewer zoom on click
* Viewer.innerTracker.dragHandler: preventDefaultAction == true prevents
viewer panning with mouse/touch
* Viewer.innerTracker.scrollHandler: preventDefaultAction == true
prevents viewer zooming on mousewheel/pinch
2013-11-04 12:41:45 -08:00
iangilman
047129e817 Merge pull request #262 from avandecreme/mousestop
Add mouse stop event
2013-11-01 11:14:57 -07:00
Antoine Vandecreme
3f5db8f8de Fix mousestop event on IE 2013-10-31 16:16:08 -04:00
Antoine Vandecreme
542d5f5aeb Remove cancelEvent + fix typos 2013-10-30 21:28:10 -04:00
Mark Salsbery
0f8ac4cfab Added 'MozMousePixelScroll' event handling
For older Firefox versions
2013-10-24 13:39:00 -07:00
Mark Salsbery
755c4752c0 'wheel' Event Support Fixes
Whitespace, cancel handling
2013-10-23 13:55:52 -07:00
Mark Salsbery
e76c9e65ab Added 'wheel' Event Support
Also improved OpenSeadragon.addEvent()/OpenSeadragon.removeEvent()
2013-10-23 12:58:36 -07:00
Antoine Vandecreme
8debb26d61 Add mouse stop event 2013-10-22 16:54:04 -04:00
Mark Salsbery
d574700b3d Event Handler Signatures Changed to 'fn(event)'
All event handler signatures changed to 'fn(event)'
eventSource property added to the event object passed
Redundant event source properties removed ('button' and 'viewer'
Documentation updated in MouseTracker
changelog.txt updated
2013-10-10 17:00:15 -07:00
Mark Salsbery
1c17ea8afa Merge branch 'master' into Pinch-Zoom-Fix
Conflicts:
	changelog.txt
2013-10-07 08:44:29 -07:00
Mark Salsbery
d55b2e7703 Pinch zoom fix
The existing code failed on iPhone Safari iOS 6.x - event.detail was
always 0 causing only zoom out behavior.
2013-10-03 15:30:40 -07:00
Mark Salsbery
9928a6d925 Fix for touch event issue #240 2013-10-03 12:11:33 -07:00
Mark Salsbery
c27481546a MouseTracker Original Events in Handlers
Whitespace fixes on un-empty [] brackets
2013-09-20 09:58:18 -07:00
Mark Salsbery
56ef12e850 Original Events in Handlers
Documentation fixes
isTouchEvent property removed from eventData where not used
'eventOrTouchPoint' var name used and 'originalEvent' var name restored
to 'event'
2013-09-12 10:05:50 -07:00
Mark Salsbery
af078f8f19 MouseTracker Original Events in Handlers
Renamed insideElementRelease to insideElementReleased.
2013-09-10 17:31:51 -07:00
Mark Salsbery
1dc2d7e011 MouseTracker Original Events in Handlers
Touch events bug fix. Now uses touch object(s) properly when calculating
positions.
2013-09-10 17:23:19 -07:00
Mark Salsbery
13415b36f3 MouseTracker Original Events in Handlers
Misc name changes, indentation/whitespace fixes.
Still TODO: Fix documentation, evaluate presence of key handler in a
mouse tracker, evaluate whether isTouchEvent flag should be in all
eventData objects or not.
2013-09-09 14:27:58 -07:00
Mark Salsbery
d60224b615 MouseTracker Original Events in Handlers
Pass original touch events to handlers.
2013-09-06 13:12:11 -07:00
Mark Salsbery
56f5b9fb74 MouseTracker Original Events in handlers
Comment & Formatting fixes
2013-09-06 10:43:39 -07:00
Mark Salsbery
b3fa8f1184 MouseTracker original events in handlers
Implemented "Expose original event in handlers" (#23) for MouseTracker

Added OpenSeadragon.getElementOffset() method. Element-relative mouse
coordinates should be correct even if the element and/or page is
scrolled (#131)
2013-09-05 17:20:17 -07:00
iangilman
d2353746c9 Merge pull request #179 from lukemurray/destroy
Add a destroy function on the viewer to clean up and remove elements
2013-08-19 10:03:12 -07:00
Ian Gilman
96c14f7617 Ignoring touchMove if we didn't get the touchStart 2013-08-16 10:09:49 -07:00
Luke Murray
0c662b8a8d fix: comment updates and add a simple test for viewer.destroy 2013-08-12 16:38:37 +10:00
Luke Murray
68f9d675fc fix: calling viewer.destroy() multiple times throw an error. And a simple destroy to mousetracker 2013-08-08 17:49:24 +10:00
ethan.li
0bb9c5be97 issue:
canvas pans when tap on touch screen

reason:
    onTouchStart calls onMouseDown which registers 'mousemove' event handler.
    when I tap on touch screen, even though browser did not dispatch 'touchmove' event, it dispatched 'mousemove' event.
    therefore, the 'mousemove' handler pans canvas.

fix:
    stop onTouchStart handler registering 'mousemove' handler as onMouseMove will be properly triggered by onTouchMove
2013-07-23 16:40:04 +10:00
ethan.li
0ef98be0b7 for fix I made to onTouchEnd:
1. remove IE8 related code as it does not support touch anyway
2. use event.changedTouches [ 0 ] rather than event
2013-07-12 10:29:44 +10:00
ethan.li
8108009ba7 fix issue:
onTouchEnd did not call the correct mouse up handler
2013-07-09 11:07:18 +10:00
Kevin Ewing
248852c15f Implementing OpenSeadragon.now()
Replacing both `+new Date()` and `new Date().getTime()` with `$.now()`
2013-06-20 13:15:04 -07:00
Chris Adams
9f6f164d9f Remove all whitespace
The results of running this command::

    find . -name \*.js -print0 | xargs -0 perl -p -i -e "s|[ \t]+$||"

(Split from #136)
2013-06-19 13:33:27 -04:00
Benjamin Gilbert
fcc119bb84 Add file-specific descriptions to file headers 2013-05-14 00:00:24 -04:00
Benjamin Gilbert
17a6ee15b1 Include 2010 in "OpenSeadragon contributors" copyright dates
This Git repository starts in 2011, but the CodePlex Mercurial repository
has commits from 2010.
2013-05-13 23:32:09 -04:00
Benjamin Gilbert
2f2eba8df2 Add "OpenSeadragon contributors" copyright statement
The license text will be provided on the website, etc., and it seems
strange to list no copyright date newer than the original CodePlex
copyright from the AJAX Control Toolkit.  Add a blanket copyright
statement for contributions to the OpenSeadragon project, stating that
copyright is held by the authors of each contribution.  This blanket
statement is not intended to preclude individual contributors from
attaching their own copyright statements to their modifications.
2013-05-12 17:12:26 -04:00
Benjamin Gilbert
be20645876 Add BSD license block and CodePlex copyright to each source file
See discussion in #10.
2013-05-10 00:16:55 -04:00
thatcher
361052656c patch for pinch zoom point. initial two point touch midpoint is used for duration of pinch-zoom operation. references #17 2013-02-27 06:57:06 -05:00
Hal Blackburn
3eac183d8c Fix handling of touchmove events on Android
Dragging the canvas did not work on Android devices as the === check for
lastTouch and the current event was always evaluating to false.
Presumably Safari on iOS re-uses the same Touch object for touchmove
events with the same finger, whereas Chrome/Firefox on Android creates
new Touch objects for each event (so the === evaluates false). The code
now compares Touch.identifier to ensure the new touch event is from the
same finger as the initiating touchstart.
2013-02-26 11:50:11 +00:00
Ian Gilman
9569ff1215 Removed JS Hint globals comment, since it's now in grunt 2013-02-14 12:04:47 -08:00
thatcher
a0fd2b3324 added inital support for moving to a nodejs build with grunt. build only includes concant and lint. fixed all lint warning where appropriate and added lint inline ignores where appropriate. when build script is complete we will start transition to new repo. also currently researching how to prune unfriendly portion of history that make repo large due to large binary files in web app. I like git well enough but using branches for web apps unrelated to code base has made me weary once again of social web fads that force convention without long term consideration of cost. 2013-02-12 22:40:08 -05:00