Reduce excess positioning calls for ComboBox popup. (#11808)
- If an open popup is reset to its default position on every update from
the server before getting adjusted again to the actual expected
position, on heavier applications some of those intermediate positions
might get rendered. If the ComboBox is positioned at the right edge and
the popup contents are longer than the input field (i.e. popup should
open to the left, not right) this might cause flickering.
- Setting the default position is only actually needed when the popup is
opened in order to give it a baseline, otherwise it's better to simply
adjust the position if needed.
Continues on #11718
Fix a timing issue in ComboBox filtering via paste using mouse. (#11780)
The filtering needs to be delayed, otherwise it's performed before the
new filter text is available and the old filter text is used instead.
Fixes #11779
Ensure the selection has been changed before updating . (#11658)
- Initial fix attempt interfered with selection events, added regression
testing for those and found a better way to ensure shift selection works
on IE11 also with Windows 7.
Fixes #11608
Clicking on DateField pop-up should select Month/Year (#11531)
* Clicking on DateField pop-up should select Month/Year
In Year/Month Resolution DateField should select the value, when user clicks on pop-up
Fixes #8447
issue in #11343 and #11385 is not reproducible on top this patch
Three different bugs are involved in this fix:
we bring the old fix(#11094) back and fixed the other related issues:
1) allow adding the same new item after dataProvider got reset, This is cause by the client side parameter `LastNewItemString`, it saves the value added before resetting.
2) clear the pending newItem eagerly, so that the same value will not be added again.
* Clicking on slider makes handler move
Fixes #1496
* Introducing control over clicking behaviour
- User will have to enable process of the click event on handle calling `slider.setEnableClickHandler(true);`
- Clean-up the handler logic in VSlider.java
- Renaming the property to `updateValueOnClick`
- Added JavaDocs
- Fixing tests
Fixing autocompletion issue with ComboBox on newer Chrome versions (#11472)
* Fixing autocompletion issue with ComboBox on newer Chrome versions
Newer Chrome versions do not work with random number hack to prevent auto completion, but it finally supports autocomplete=off.
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
Use Enter and Space keys to fire Window header buttons (#11517) (#11534)
* Fixes 11517. Use ENTER and SPACE keys as shortcuts for header buttons
* Merge branch 'master' into fix-11517
* Increase sleep time for test failing in validation
* Merge branch 'master' into fix-11517
* Add Test file
* Remove redundant check for for Firefox
It seems that in older versions of Firefox (at least, older than 45) the KeyPress event should be used instead of KeyDownHandler. At some point (works already on 58 version, the current one is 65) the issue was resolved and starting from Firefox 65 this hook prevents from navigating in the pop-up via keyboard.
Simply removing additional logic makes navigating in both DateField and InlineDateField possible
Fixes #11465
Checkbox allow customizing of input and label classNames. (#11372)
* add client side integration for custom styles for checkbox.label and checkbox.input
* add server side integration for checkbox element styling
* add server side tests
* add client side test
* Improve VMenuBar click handling logic
During `updateFromUIDL` inside MenuBarConnector we empty and re-instantiate the components of MenuBar. When we are modifying the Menubar from the BlurEventListener of another component, we ,by this, remove widgets, therefore clickEvent is not fired and the action of the MenuItem is not proceed as a result. (The BlurEvent is fired before the click event in the chain of events. )
To improve the situation, we catch onMouseDown event , which is fired before BlurEvent,by assigning mouseDown flag to true. Then if no click event has yet happened, we delay the execution of update inside `updateFromUIDL` by default 500 ms. Then if click event occurs, it proceeds normally. The time can be increased/decreased using setter.
There is no delay, if we are clicking on the MenuBar as usual or no Blur listener is set.
This change allows setting descriptions
* Remove accidentally committed comment
* Don't update the state on the getDelayMs call
* Move onClick logic to the Connector
Move onClick event handling from 'VNativeButton' to NativeButtonConnector. Now works as for regular button.
Also, adding propagation of the `enabled` value to the state on disableOnClick being true
Fixes https://github.com/vaadin/framework/issues/11188
Apply missing v-readonly style to CheckBoxGroup, when component is readOnly (#11370)
Setting read-only state to CheckBoxGroup should disable adding clicking effect. Missing v-readonly style is added to every CheckBox in the component, if it's set to read-only.
Fixes: https://github.com/vaadin/framework/issues/11113
* Add file missed from initial commit
* Verifying that option is enabled
Some of the options might be disabled on there own. Verify that option is not disabled, before removing disabled styles.
* Add missing test file
Update time in ReadOnly state of DateTimeCalendar (#11269)
Fix https://github.com/vaadin/framework/issues/11268
```buildTime()``` function re-initializes ListBoxes for hours,minutes and seconds values. We need to set correct values in those ListBoxes, before assigning value to the labels displayed instead of those ListBoxes in ReadOnly state, as , otherwise, the selectedItemIndex returns 0.
Display the caption of the Empty selection in NativeSelect (#11191)
* Fixes #10937
- Previously if selected value is null, then index is set to -1; in current implementation if value is null and emptySelection is allowed then set the index to 0. (The position for the empty selection)
- Also, if changing the allowEmptySelection on the fly, ensure, that either index is to-reset to -1 by setting the selected value to null on the client-side (the value before was null) or preserve the value(value was different than empty).
* Change the test case
Since in this pr the behaviour of the NS is changed, therefore old test need to be adjusted.
Change: setting null as value will select empty selection. Before that nothing would be selected and value will be cleared.
Behaviour change in PR: Allow selecting null as value
Updates to scrolled TabSheet resize logic and Valo right-alignment. (#11133)
- When a TabSheet is scrolled to an end and then resized bigger, more
tabs should appear to the left.
- When a TabSheet is right-aligned in Valo and scrolled to the end, last
tab shouldn't be partially hidden behind the scroller buttons.
- Shouldn't allow attempts to scroll into directions where there is
nothing left to scroll to, even if the current tab isn't fully visible.
Fixes #807