Fix tooltip position when doing screenshot

This commit is contained in:
Miodrag Milanovic 2018-10-24 20:50:38 +02:00
parent 85c56f4246
commit 62a615a17d
2 changed files with 6 additions and 1 deletions

View File

@ -368,9 +368,9 @@ void FPGAViewWidget::paintGL()
} }
QtImGui::newFrame(); QtImGui::newFrame();
QMutexLocker lock(&rendererArgsLock_); QMutexLocker lock(&rendererArgsLock_);
if (!(rendererArgs_->hoveredDecal == DecalXY())) if (!(rendererArgs_->hoveredDecal == DecalXY()))
{ {
ImGui::SetNextWindowPos(ImVec2(rendererArgs_->x, rendererArgs_->y));
ImGui::BeginTooltip(); ImGui::BeginTooltip();
ImGui::PushTextWrapPos(ImGui::GetFontSize() * 35.0f); ImGui::PushTextWrapPos(ImGui::GetFontSize() * 35.0f);
ImGui::TextUnformatted(rendererArgs_->hintText.c_str()); ImGui::TextUnformatted(rendererArgs_->hintText.c_str());
@ -717,6 +717,8 @@ void FPGAViewWidget::mouseMoveEvent(QMouseEvent *event)
QMutexLocker locked(&rendererArgsLock_); QMutexLocker locked(&rendererArgsLock_);
rendererArgs_->hoveredDecal = closest.decal(ctx_); rendererArgs_->hoveredDecal = closest.decal(ctx_);
rendererArgs_->changed = true; rendererArgs_->changed = true;
rendererArgs_->x = event->x();
rendererArgs_->y = event->y();
if (closest.type == ElementType::BEL) { if (closest.type == ElementType::BEL) {
rendererArgs_->hintText = std::string("BEL\n") + ctx_->getBelName(closest.bel).c_str(ctx_); rendererArgs_->hintText = std::string("BEL\n") + ctx_->getBelName(closest.bel).c_str(ctx_);
CellInfo *cell = ctx_->getBoundBelCell(closest.bel); CellInfo *cell = ctx_->getBoundBelCell(closest.bel);
@ -862,6 +864,7 @@ void FPGAViewWidget::leaveEvent(QEvent *event)
QMutexLocker locked(&rendererArgsLock_); QMutexLocker locked(&rendererArgsLock_);
rendererArgs_->hoveredDecal = DecalXY(); rendererArgs_->hoveredDecal = DecalXY();
rendererArgs_->changed = true; rendererArgs_->changed = true;
rendererArgs_->hintText = "";
pokeRenderer(); pokeRenderer();
} }

View File

@ -270,6 +270,8 @@ class FPGAViewWidget : public QOpenGLWidget, protected QOpenGLFunctions
PassthroughFlags flags; PassthroughFlags flags;
// Hint text // Hint text
std::string hintText; std::string hintText;
// cursor pos
int x,y;
}; };
std::unique_ptr<RendererArgs> rendererArgs_; std::unique_ptr<RendererArgs> rendererArgs_;
QMutex rendererArgsLock_; QMutex rendererArgsLock_;