diff --git a/chrome/content/InputHandler.js b/chrome/content/InputHandler.js --- a/chrome/content/InputHandler.js +++ b/chrome/content/InputHandler.js @@ -552,6 +552,11 @@ let dragData = this._dragData; + if (!dragData.sX && !dragData.sY) { + dragData.sX = aEvent.screenX; + dragData.sY = aEvent.screenY; + } + let dx = dragData.sX - aEvent.screenX; let dy = dragData.sY - aEvent.screenY; @@ -561,6 +566,22 @@ this._dragStart(aEvent.screenX, aEvent.screenY); } } + + // even if we haven't started dragging yet, we should queue up the mousemoves + // incase we do start + if (dragData.useKinetic) { + // update our kinetic data + let kineticData = this._kineticData; + let t = Date.now(); + let dt = kineticData.lastTime ? t - kineticData.lastTime : 0; + kineticData.lastTime = t; + let momentumBuffer = { dx: -dx, dy: -dy, dt: dt }; + + kineticData.momentumBuffer[kineticData.momentumBufferIndex] = momentumBuffer; + kineticData.momentumBufferIndex++; + kineticData.momentumBufferIndex %= kineticData.momentumBufferSize; + } + if (!dragData.dragging) return; @@ -568,19 +589,6 @@ dragData.sX = aEvent.screenX; dragData.sY = aEvent.screenY; - - if (dragData.useKinetic) { - // update our kinetic data - let kineticData = this._kineticData; - let t = Date.now(); - let dt = t - kineticData.lastTime; - kineticData.lastTime = t; - let momentumBuffer = { dx: -dx, dy: -dy, dt: dt }; - - kineticData.momentumBuffer[kineticData.momentumBufferIndex] = momentumBuffer; - kineticData.momentumBufferIndex++; - kineticData.momentumBufferIndex %= kineticData.momentumBufferSize; - } }, _startKinetic: function _startKinetic(sX, sY) { diff --git a/chrome/content/browser.js b/chrome/content/browser.js --- a/chrome/content/browser.js +++ b/chrome/content/browser.js @@ -235,6 +235,8 @@ gPrefService.clearUserPref("temporary.disablePlugins"); this.setPluginState(true); } + + this.setPluginState(false, /libflashplayer/); }, updateViewportSize: function() { @@ -249,12 +251,17 @@ } }, - setPluginState: function(enabled) + + setPluginState: function(enabled, fileNameRegexp) { var phs = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost); var plugins = phs.getPluginTags({ }); - for (var i = 0; i < plugins.length; ++i) - plugins[i].disabled = !enabled; + for (var i = 0; i < plugins.length; ++i) { + if (!fileNameRegexp || fileNameRegexp.test(plugins[i].filename)) { + dump("setting " + plugins[i].filename + "disabled = " + !enabled + "\n"); + plugins[i].disabled = !enabled; + } + } }, get canvasBrowser() {