So far only 90 degree rotation is supported.
Only the image is currently being rotated.
Overlays, debugger, and the navigator still need to be updated to support rotation.
* Use CSS display tables for vertical centering (tested back to IE8)
* Use the DOM instead of string concatenation
* Remove redundant styles ($.makeNeutralElement sets the same values
for margin, padding & border)
* Return the outer wrapper element to ease DOM addition & removal
Setting onreadystatechange can avoid the possibility of it somehow being
called twice but there's no point in nulling the request right before we
let the GC collect it.
* Since async is always true – and browsers are starting to deprecate
synchronous XHR – we were able to prune considerable amount of code
* Add an error callback to match the existing success callback
Previously `request.onreadystatechange` was assigned an empty function
on success but null on failures, which breaks in IE (see
http://jsbin.com/ezozax/6/).
This patch simply mimics the success behaviour in the cleanup function
Closes#143
This previously wasn't in scope outside of the main OpenSeadragon
closure. Now it's exposed with an underscore prefix to encourage people
not to think of it as a public interface.
Mostly unused function arguments but there were also a fair number
of legacy names which are now no longer used.
One question which comes up – mostly in tilesource.js – is whether
there is any value in leaving unused variables for functions which
are intended to be overridden anyway. I'm inclined to say that the
docs + tests need to be sufficient as there's no enforcement that
whatever is in the base implementation will actually be followed by
any of the real functions.
This simplifies setElementOpacity by removing support for the
obsolete, IE-only element.filters property. Also removes a variable
that previously leaked into the global scope.
Very old versions of Firefox - e.g. Firefox 7 - have
window.requestAnimationFrame but not cancelAnimationFrame. This is a
very old release so the easiest fix is simply to check for both of the
functions which we intend to call and fall back on traditional behaviour
if both aren't present.