TextEditor: Fix is visible check of function hint

Since the FunctionHintProposalWidget is just a proxy witget that uses a
FakeToolTip it is not shown directly so we cannot check the visibility
with isVisible.

Fixes: QTCREATORBUG-25664
Change-Id: I6888e373afcfc79565ce8e3dad1bb05501d58200
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
David Schulz
2021-05-04 11:21:13 +02:00
parent 97744a071a
commit a86da031c7
4 changed files with 11 additions and 2 deletions

View File

@@ -407,7 +407,7 @@ void CodeAssistantPrivate::finalizeProposal()
bool CodeAssistantPrivate::isDisplayingProposal() const
{
return m_proposalWidget != nullptr && m_proposalWidget->isVisible();
return m_proposalWidget != nullptr && m_proposalWidget->proposalIsVisible();
}
bool CodeAssistantPrivate::isWaitingForProposal() const

View File

@@ -219,10 +219,15 @@ void FunctionHintProposalWidget::closeProposal()
abort();
}
bool FunctionHintProposalWidget::proposalIsVisible() const
{
return d->m_popupFrame->isVisible();
}
void FunctionHintProposalWidget::abort()
{
qApp->removeEventFilter(this);
if (d->m_popupFrame->isVisible())
if (proposalIsVisible())
d->m_popupFrame->close();
deleteLater();
}

View File

@@ -52,6 +52,8 @@ public:
void updateProposal(const QString &prefix) override;
void closeProposal() override;
bool proposalIsVisible() const override;
protected:
bool eventFilter(QObject *o, QEvent *e) override;

View File

@@ -57,6 +57,8 @@ public:
virtual void updateProposal(const QString &prefix) = 0;
virtual void closeProposal() = 0;
virtual bool proposalIsVisible() const { return isVisible(); }
int basePosition() const;
void setBasePosition(int basePosition);