diff --git a/newIDE/app/src/EventsSheet/ParameterFields/GenericExpressionField/ExpressionAutocompletionsHandler.js b/newIDE/app/src/EventsSheet/ParameterFields/GenericExpressionField/ExpressionAutocompletionsHandler.js index d86ed45512..a6328fcc95 100644 --- a/newIDE/app/src/EventsSheet/ParameterFields/GenericExpressionField/ExpressionAutocompletionsHandler.js +++ b/newIDE/app/src/EventsSheet/ParameterFields/GenericExpressionField/ExpressionAutocompletionsHandler.js @@ -152,6 +152,18 @@ export const handleAutocompletionsKeyDown = ( if (autocompletion.isExact) return state; onInsertAutocompletion(autocompletion); + // Stop propagation to avoid closing the modal the + // field is contained in. + event.stopPropagation(); + } else { + const additionalAction = + state.additionalActions[ + state.selectedCompletionIndex - state.autocompletions.length + ]; + if (additionalAction) { + additionalAction.onClick(); + } + // Stop propagation to avoid closing the modal the // field is contained in. event.stopPropagation(); diff --git a/newIDE/app/src/EventsSheet/ParameterFields/GenericExpressionField/index.js b/newIDE/app/src/EventsSheet/ParameterFields/GenericExpressionField/index.js index 0ad4b5d7c4..b6b528b94e 100644 --- a/newIDE/app/src/EventsSheet/ParameterFields/GenericExpressionField/index.js +++ b/newIDE/app/src/EventsSheet/ParameterFields/GenericExpressionField/index.js @@ -499,7 +499,7 @@ export default class ExpressionField extends React.Component { onGetAdditionalAutocompletions, onExtractAdditionalErrors, } = this.props; - if (!project || !instruction) return null; + if (!project) return null; const expression = this.state.validatedValue; @@ -509,11 +509,13 @@ export default class ExpressionField extends React.Component { const parser = new gd.ExpressionParser2(); const expressionNode = parser.parseExpression(expression).get(); - const objectName = gd.InstructionValidator.getObjectNameForParameter( - projectScopedContainersAccessor.get(), - instruction, - expressionType - ); + const objectName = instruction + ? gd.InstructionValidator.getObjectNameForParameter( + projectScopedContainersAccessor.get(), + instruction, + expressionType + ) + : ''; const showDeprecatedInstructionWarning = this.context ? this.context.values.showDeprecatedInstructionWarning