If a scroll event comes in that changes the scroll coordinates
from those that were last set by user scrolling in Java, then
update the Java viewport with the new coordinates. Note that
this may occur in the middle of a draw, when Gecko already has
the transaction lock acquired on the tile buffer. Therefore we
need to delay the update until after the draw is complete.
Fixing the l10n.ini and filter.py for both native and xul UI.
Fixing the repack logic for native to support both single-locale repacks
and multi-locale builds.
Removing some deb packaging code, that's not of any use for android native.
The new Java compositor only handles scrolling the top-level scroll-frame. Use
browser.js to detect when a sub-frame is being scrolled and send an 'override'
event to Java to tell it to pass us scroll events instead of calling the
scroll function on the LayerController.
Send an event to scroll to the focused input field when the
soft keyboard comes up. Ensure that this happens *after* the
viewport change event is sent to Gecko, so that Gecko actually
knows that browser viewport is smaller and doesn't just no-op
the scroll request.
Don't allow Gecko to set the viewport size because Java knows
this better. Allowing this behaviour could result in Bad Things(TM)
under certain race conditions such as described in bug 707285.
The velocity filter patch from bug #705114 changed how displace worked during
panning, but this accidentally changed how it worked in some non-panning
situations (such as at the end of a fling or snap animation).
If the Java code is in the middle of a fling when Gecko sends
a viewport update, abort the fling, cancel the velocity, and
re-fling. The re-fling is purely to get the page snapped to an
edge if needed.
Missing pieces of the document resulted in pageWidth getting
assigned to NaN, which was serialized as null by JSON. This
resulted in an exception over in Java-land when deserialization
was attempted, and killed the viewport update entirely.
Set the render mode to RENDERMODE_WHEN_DIRTY and request a redraw when a layer
transaction ends and when the viewport in LayerController changes. This stops
us from drawing continuously.
Certain devices, such as the HTC Flyer, deliver motion events with identical
coordinates before a touch-release event. This causes kinetic panning to fail,
as the calculated velocity is only based on the last two events.
Introduce a velocity change factor, so that the velocity can only change by a
certain amount per event. This has the effect of smoothing velocity changes
and fixes the bug on the HTC Flyer, at least.