@@ -391,7 +391,7 @@ class ComboBox extends UI5Element {
391
391
onBeforeRendering ( ) {
392
392
let domValue ;
393
393
394
- if ( this . _initialRendering ) {
394
+ if ( this . _initialRendering || ! this . _isValueChangedByInteraction ( ) ) {
395
395
domValue = this . value ;
396
396
this . _filteredItems = this . items ;
397
397
} else {
@@ -443,6 +443,12 @@ class ComboBox extends UI5Element {
443
443
444
444
this . toggleValueStatePopover ( this . shouldOpenValueStateMessagePopover ) ;
445
445
this . storeResponsivePopoverWidth ( ) ;
446
+
447
+ // Reset the interaction flag only after any scheduled re-renderings called in this method are done,
448
+ // avoid resetting the indicator before the calculations caused by the the user action are finished
449
+ setTimeout ( ( ) => {
450
+ this . _setValueChangedByInteraction ( false ) ;
451
+ } ) ;
446
452
}
447
453
448
454
shouldClosePopover ( ) {
@@ -608,6 +614,7 @@ class ComboBox extends UI5Element {
608
614
_keydown ( event ) {
609
615
const isArrowKey = isDown ( event ) || isUp ( event ) ;
610
616
this . _autocomplete = ! ( isBackSpace ( event ) || isDelete ( event ) ) ;
617
+ this . _setValueChangedByInteraction ( true ) ;
611
618
612
619
if ( isArrowKey ) {
613
620
this . handleArrowKeyPress ( event ) ;
@@ -709,6 +716,7 @@ class ComboBox extends UI5Element {
709
716
return item ;
710
717
} ) ;
711
718
719
+ this . _setValueChangedByInteraction ( true ) ;
712
720
this . _inputChange ( ) ;
713
721
this . _closeRespPopover ( ) ;
714
722
}
@@ -717,6 +725,14 @@ class ComboBox extends UI5Element {
717
725
this . _itemFocused = true ;
718
726
}
719
727
728
+ _isValueChangedByInteraction ( ) {
729
+ return this . _isChangedByInteraction ;
730
+ }
731
+
732
+ _setValueChangedByInteraction ( isValueChangedByInteraction ) {
733
+ this . _isChangedByInteraction = isValueChangedByInteraction ;
734
+ }
735
+
720
736
get _headerTitleText ( ) {
721
737
return this . i18nBundle . getText ( INPUT_SUGGESTIONS_TITLE ) ;
722
738
}
0 commit comments