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
Omit empty hierarchy data from the response (#18510)
Reduces the payload size for the "Update all labels" action with 40
layouts in BasicPerformanceTest by 16% (from 11087 to 9270 bytes). The
reduction is improved to 22% (1855 to 1455) if the response is gzipped
since the omited data doesn't compress very well.
Change-Id: I1d2837c93222fffa59b14836f162e3e87349e086
Isolate text selection blocking to Grid instead of body element (#16838)
Some themes are more explicit with user-select rules, and doing this on
the level of body element does not work with said themes. To make all
the themes behave the same way, we only block selection inside of Grid.
Change-Id: Iaf24fede88e4bc683e065c214e7baf3f545c99c9
Prevent text selection while DnD resizing columns (#16838)
This patch uses a JavaScript workaround to prevent text selection in IE8
and IE9 and Safari.
The selection is prevented everywhere in the DOM while a column is
resizing.
Change-Id: I1e7b9cdc675c83a9666493d8545337d601e40077
Adds functions for skipping child component layout measuring.
Removes unnecessary code from VScrollTable.
1. case: no components
- render time without the fix: ~105ms
- render time with fix: ~105ms
2. case: 2 button and 2 textfield cols
- render time without the fix: ~279ms
- render time with fix: ~240ms (~17% faster)
3. case: 3 button and 3 textfield cols
- render time without the fix: ~350ms
- render time with fix: ~281ms (~20% faster)
Change-Id: I6025f8ee2fd438d228ff3b65f43535961cf12c0b
Previously grid sidebar could be partially hidden by
"overflow: hidden" of an ancestor component.
Now it's in an overlay and the hierarchy doesn't affect it.
Grid tests were also updated for new DOM structure.
Change-Id: Ic5fb125d9c097be0f0141c121dfe74d30e650dd0
Force FormLayout children to shrink with the layout (#11154)
The <table> used by the FormLayout doesn't reduce its size if any child
component has locked its own size (which is the case with e.g. Table and
some other components doing explicit pixel calculations). To work around
this, we need to detect the situation, force the <table> to reduce its
width by temporarily assigning explicit widths to the cells and then
remove the forced size after all children have adjusted.
Change-Id: Iacef62979acf24c869a5cbeb82efb0c1e537ec95
Touch long tap context click emulation improvements (#19222)
Removed Android handling since it already fires a context menu event
when not selecting text. Increased the threshold for iOS move. Prevent
some browser default functionality on TouchEnd after sending context
click event to server.
Change-Id: I9297a5738e593a260b50ba176d483fbdd3293ba3
Calculation of the frozen column width was wrong in multiselect mode.
It did not take into account the last frozen column, but added
the select column twice.
The same problem was in AutoScroller (as the same methods were
copy-pasted there), for which reason the autoscrolling was not
scrolling till the end.
This patch fixes the calculation error and removes copy-pasted code,
reusing the same code in both places.
Change-Id: I164e2fc96688088b620ad8785c533c593723f83e
Removing a widget that got moved to another layout occasionally caused
slot to lose track of related widget. As a result the layout never
created a new slot when the same widget is put back in there.
Change-Id: I0d8793324b8a5ac8a06aa2803ac8de22b90b7545
Touchstart events now fire a contextclick event if there is a context
click listener.
Refactored sendContextClickEvent to accomodate the change.
Change-Id: I9bce5948f89149e9ecb261cfd8ae918470ccec3e
VTree$TreeNode avoid NPE triggered by external ONLOAD events (#18563)
If an ONLOAD event fires but the target is not the icon, an NPE
occurs. The isCaptionElement method has already used the check
against null before any call happens on the icon which logic is
enough for the onBrowserEvent check as well.
Change-Id: I64de45a07f50f113dcfcb4556f0d8adeea9e1b1b
Method setWidgetEnabled in AbstractComponentConnector,
called from updateEnabledState, sets enable state only for widgets
implementing HasEnabled interface.
Change-Id: Idc700d0c28efd13b9a9470333b19a1509cca4a51
Support ContextClicks in empty areas of Table and TreeTable (#19130)
When the user clicks an empty area, the TableContextClickEvent will still
fire, but will have a null property.
Change-Id: I39303f1a72d072db09c4fe6df8141d6caf0764c2
Move RpcDataProviderExtension and DataGenerator to correct package
New location is com.vaadin.server.communication.data as the extension
only manages the communication of container data to a client-side data
source.
Change-Id: I7aeefe23c9d771d70bc1dd389bc7f0c3357f0a17