Skip to content

Commit 300911c

Browse files
committed
Fixed inconsistent picking (Fixes #494)
1 parent cab991b commit 300911c

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

Sources/OvEditor/src/OvEditor/Panels/AView.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,11 @@ void OvEditor::Panels::AView::DrawFrame()
8787

8888
std::pair<uint16_t, uint16_t> OvEditor::Panels::AView::GetSafeSize() const
8989
{
90-
constexpr float kTitleBarHeight = 25.0f; // <--- this takes into account the imgui window title bar
90+
const float kTitleBarHeight = ImGui::GetFrameHeight(); // accounts for the imgui window title bar
9191
const auto& size = GetSize();
9292
return {
9393
static_cast<uint16_t>(size.x),
94-
static_cast<uint16_t>(std::max(0.0f, size.y - kTitleBarHeight)) // <--- clamp to prevent the output size to be negative
94+
static_cast<uint16_t>(std::max(0.0f, size.y - kTitleBarHeight))
9595
};
9696
}
9797

Sources/OvEditor/src/OvEditor/Panels/SceneView.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ void OvEditor::Panels::SceneView::HandleActorPicking()
249249

250250
auto mousePosition = EDITOR_CONTEXT(inputManager)->GetMousePosition();
251251

252-
m_gizmoOperations.SetCurrentMouse({ static_cast<float>(mousePosition.first - m_position.x), static_cast<float>(mousePosition.second - m_position.y) });
252+
m_gizmoOperations.SetCurrentMouse({ static_cast<float>(mousePosition.first - m_position.x), static_cast<float>(mousePosition.second - m_position.y - ImGui::GetFrameHeight()) });
253253
m_gizmoOperations.ApplyOperation(m_camera.GetViewMatrix(), m_camera.GetProjectionMatrix(), m_camera.GetPosition(), { static_cast<float>(winWidth), static_cast<float>(winHeight) });
254254
m_highlightedGizmoDirection = m_gizmoOperations.GetDirection();
255255
}
@@ -260,7 +260,7 @@ OvEditor::Rendering::PickingRenderPass::PickingResult OvEditor::Panels::SceneVie
260260
auto [mouseX, mouseY] = EDITOR_CONTEXT(inputManager)->GetMousePosition();
261261
mouseX -= m_position.x;
262262
mouseY -= m_position.y;
263-
mouseY = GetSafeSize().second - mouseY + 25;
263+
mouseY = GetSafeSize().second - mouseY + ImGui::GetFrameHeight();
264264

265265
auto& scene = *GetScene();
266266

0 commit comments

Comments
 (0)