diff --git a/python/GafferUI/MultiLineStringPlugValueWidget.py b/python/GafferUI/MultiLineStringPlugValueWidget.py index 219bd4e3273..e5e62bcfa0b 100644 --- a/python/GafferUI/MultiLineStringPlugValueWidget.py +++ b/python/GafferUI/MultiLineStringPlugValueWidget.py @@ -55,8 +55,6 @@ def __init__( self, plug, **kw ) : self._addPopupMenu( self.__textWidget ) self.__textWidget.keyPressSignal().connect( Gaffer.WeakMethod( self.__keyPress ), scoped = False ) - self.__textWidget.editingFinishedSignal().connect( Gaffer.WeakMethod( self.__setPlugValue ), scoped = False ) - self.__textChangedConnection = self.__textWidget.textChangedSignal().connect( Gaffer.WeakMethod( self.__setPlugValue ), scoped = False ) def textWidget( self ) : @@ -78,9 +76,13 @@ def _updateFromMetadata( self ) : role = getattr( self.__textWidget.Role, role.capitalize() ) if role else self.__textWidget.Role.Text self.__textWidget.setRole( role ) - self.__textChangedConnection.setBlocked( - not Gaffer.Metadata.value( self.getPlug(), "multiLineStringPlugValueWidget:continuousUpdate" ) - ) + # We don't connect to `editingFinishedSignal()` when we're in continuous mode, as otherwise the + # text widget would show an unnecessary "activation hint" overlay. + if Gaffer.Metadata.value( self.getPlug(), "multiLineStringPlugValueWidget:continuousUpdate" ) : + textEditedSignal = self.__textWidget.textChangedSignal() + else : + textEditedSignal = self.__textWidget.editingFinishedSignal() + self.__textEditedConnection = textEditedSignal.connect( Gaffer.WeakMethod( self.__setPlugValue ), scoped = True ) def _updateFromEditable( self ) :