This patch also adds some subpart awareness as well as deferred worker
interface to VFilterSelect to support running TB4 tests reliably.
Change-Id: I41f2af38f7eba2194aa49c8d7a0d13073166cddf
Set value selected by mouse when pressing Enter in ComboBox (#16981)
With this patch pressing Enter in ComboBox sets value selected by mouse.
Selection by keyboard is not given higher priority.
Change-Id: I2e5f610923a40f67be2c1504a004af0d431a67a3
Redesign ComboBox filtering, highlighting and selection behaviour.
(#15502, #9369)
Changes:
- When opening the popup, the first suggestion is always highlighted by
default unless adding new items is allowed.
- When filter matches currently selected item, that item will be
highlighted instead of the first item.
- Hitting enter or tab will always select the highlighted item.
- Closing the suggestions list by clicking outside the list no longer
selects an item to prevent accidental selections.
Test changes:
- Extended ComboBoxElement to help test filtering.
- Updated and tweaked ComboBoxResetValueTest,
ComboBoxIdenticalItemsTest and ComboboxScrollableWindowTest.
- Added ComboBoxSelectingTest and
ComboBoxSelectingWithNewItemsAllowedTest.
- Updated some tests that were using keyboard navigation.
Change-Id: Ia7745b624bdb0b1a1bb498157ebcb37bee219d76
Pressing [down]+[enter] on a combobox now closes the popup. (#14379)
Pressing down to open the popup menu and then pressing enter to select
the same item as is already selected will now cause the same behavior
as pressing the escape key when there are suggestions.
Change-Id: I6052608cc5916d306a981aa0f98b0ae822da5eb4
Correctly display an item which is too long for the textfield. (#13477)
New JSNI function allows direction parameter in setSelectionRange.
This allows setting selection backward and fixes the issue in FF.
Change-Id: I1e34b70983e3f525b7009668877038f108d286a7
Correctly display an item which is too long for the textfield. (#13477)
As setSelectionRange is not working correctly in IE the current approach
sets the direction before setting the text and resets it to the original
immediately after that.
Change-Id: I33f40f9ae436122092d995fa17c35a9cbe38aedb
Fixed regression with changing widths when stylenames have changed (#13444, #8801):
Changing the name of a style should not cause the width of the textbox
to change. If there is a width set for the wrapper, the width for the
wrapper should not change if the styles changes.
To reconcile these two demands, we have removed the width for the
wrapper and only manipulate the width of the textbox itself. This
solves both issues neatly.
Change-Id: Idb2dbc5d2ca6406cafb44df93110e079a1dff473
Replace use of deprecated DOM.setStyleAttribute method (#13781)
This change is only a brain dead replacement of one specific method. In
some cases, there were some oddities in the surrounding code as well,
but these were left unresolved on purpose.
It should also be noted that DOM.setStyleAttribute just delegates to
element.getStyle().setProperty(), so any null references would have
caused problems already in the existing code.
Change-Id: I340122ac0767af9928076376f76e5bd2c5e19f9f
Extract code which focuses on item after changing the page. Deferring this method allows to update the list of items before focusing.
Change-Id: I7d249c2abbd5c24ca2d798736e483f2b7dfa59f1
Changed implementations and APIs to use the non-deprecated Element class
wherever possible without breaking backwards compatibility.
* Methods defined in interfaces have not been touched.
* Return types have only been changed methods that should have no
existing third party callers (i.e. private, internal or @since 7.2)
* For methods that third party code might have overridden, the method
has been deprecated in favor of a new method that just delegates to the
old method.
* For methods that can't reasonably be overridden by third party code
(i.e. private, final, static, internal or @since 7.2), the parameter
type has been changed without retaining the old method.
Change-Id: I7da943a77b8d0d0b9185d8c70f87d676a275d24b
Use FQN instead of import for the bad Element class (#13287)
This is the first step towards eliminating usage of the class. Reasoning
about upcoming steps will be easier when it's clear which class
"Element" refers to.
Change-Id: Iea5547f789edc77c3b4ac95a5e2eb34d2717999e
Allow creating TextBox or SuggestionPopup when extending VFilterSelect (#12491)
This patch adds two methods, that one can override when extending VFilterSelect.
By doing so, the developer can for example change the behavior of setting text,
or performing clicks in the suggestion popup.
This change is backwards compatible, as it just offers two new methods to
override.
Change-Id: Icc8fd154ef1abaed96e6af742af77c3225db3fe4