* UIDL responses only include server side timing information when not
in production mode.
* Update documentation accordingly.
Change-Id: I961d1fdc96b3d04f22254fcd13a5412f17118b42
Fix DragAndDropWrapper update after file upload (#19616)
After a file has been uploaded VDragAndDropWrapper tries to pull changes
from the server by calling
ApplicationConnection.sendPendingVariableChanges() which has no effect.
This change replaces the
ApplicationConnection.sendPendingVariableChanges() call with an RPC.
Change-Id: Ibdf7f4d702add9507dbe54c1fdb402f0f4b19d19
Do not process click events for disabled optiongroups (#19433)
This removes the warning logged on the server side when the RPC reaches it
for the disabled component. As this is more of a cosmetic change, there is
no automatic test.
Change-Id: I8bfa83bd0a26c585e1614d821ac3b598294db09d
Allow legacy components to paint infinity double values again (#19447)
JsonPaintTarget.addAttribute(String,double) converts infinity values to
{ "name": Infinity }. This is not valid JSON but has "always worked" and
at least NumberField relies on being able to send infinity values.
For state and RPC it's not possible to send 'infinity' as JsonNumber
converts those to null.
It is not possible to send 'infinity' back to the server using a legacy
variable either as also in this case JsonNumber is used and the value becomes
null.
This fix should be reverted when legacy variable support is removed.
Change-Id: I4b5366420e11915236eff447e3eeedc458cf8cea
Fix ScrollbarBundle to not round down pixel values (#19421)
Since Escalator now uses subpixels in most cases, scrollbar calculation
fails when ScrollbarBundle calls Math.floor for the offset size. Removed
rounding, added a pixel epsilon check that we don't make a scrollbar
when it's not really needed.
Change-Id: I228fd7dd48d4506e5b2b7bb799291c9a122ea3fe
Fix WidgetRenderer column cells not correctly init on change (#19086)
When changing to a widget renderer with an existing column, the widget
renderer expects that the cells would be initialized to have a correct
widget for it. Because of original design where you could not change
renderers, this was not taken into account and cells did not get
reinitialized when changing the renderer.
This patch showed another underlying detach problem from removing a
widget renderer and destroying complex renderers. These both are also
addressed to make this bug possible to test correctly.
Patch includes a client-side test that verifies the integrity of the
renderer state in different stages of its lifecycle.
Change-Id: I67330e5d07c95047cb69040e8355a17dc8a96f08
Long tap causes problems in embedded browsers on iOS (text
selection is performed and/or the OS native context menu is shown).
The support should be re-enabled in the future (see #19406).
Change-Id: I842df12675482c8e529e8bb061958414cc8c0b90
Atmosphere will disconnect the push connection when going offline and reconnect it
when going online again. There are no events sent when this happens, which means the
reconnect logic cannot take this into account.
Having it enabled leads to something like:
1. Browser goes offline, push is disconnected
2. Framework sees it as a normal close and does not show the reconnect dialog
3. The user does something, the framework tries to send a websocket request
4. A new Atmosphere request is created and enters a try-to-reconnect loop as expected
5. The browser goes online, and the online event re-initializes the old connection
although a try-to-reconnect loop is already running
Change-Id: I5dcef768783142e2c7b4e7c821353addb0ec3d28
Fix Grid column resize to take account min width for cells (#16597)
Use Escalator cell size calculation without content to determine the
absolute minimum size for cells. This is used in Grid when drag resizing
or sorting columns to prevent cells from overflowing to the next row.
Change-Id: I2d598232d7d2b8729b11fe190b68ca3e42ee3652
Fix text selection and context click events for Android devices (#19367)
Text and element selection needs to be disabled on touch start for
Android as well. Other touch event handling used by iOS devices is not
used on Android.
Change-Id: I7f17af437ddf4f7b747232fbd19b2cd5c825c0e2
Prevent text selection on iOS devices with long tap (#19367)
Text or elements should not get selected when there's a context click
listener. Pre-emptively prevent text selection for the whole widget when
that happens.
Change-Id: I3c09d8b2c25d383d6abe079f0fee3809cf5838c7
Fix mouse wheel scrolling of ComboBox in IE11 (#16918)
IE11 is broken so that the simple implementation always moves up on any
mouse wheel event. Therefore, this change borrows the approach taken by
Escalator for low-level handling of mouse wheel events in a way compatible
with all supported browsers.
Change-Id: I98c89d3ccfeea38d6a454ef708f0eb7d1d3f480c
Fix selecting a row that was deselected on the server (#19360)
Client-side connector of the SingleSelectionModel attempts to keep track
of currently selected row. This tracking gets lost when the row get
deselected on the server-side. Special case is now correctly handled.
Change-Id: I1c45548bd11536bc85cddbc2ba8b6225965c1194