mirror of
https://github.com/Drezil/imgui.git
synced 2024-12-18 06:06:35 +00:00
opengl3+opengl example: if content window doesn't have focus, tell ImGui we don't have a mouse position. e.g. avoids tooltips popping up in imgui app when you're interacting with a different app window that overlaps it.
This commit is contained in:
parent
d3e444dfd9
commit
f2ff88b03a
@ -329,11 +329,18 @@ void ImGui_ImplGlfwGL3_NewFrame()
|
|||||||
|
|
||||||
// Setup inputs
|
// Setup inputs
|
||||||
// (we already got mouse wheel, keyboard keys & characters from glfw callbacks polled in glfwPollEvents())
|
// (we already got mouse wheel, keyboard keys & characters from glfw callbacks polled in glfwPollEvents())
|
||||||
|
if (glfwGetWindowAttrib(g_Window, GLFW_FOCUSED))
|
||||||
|
{
|
||||||
double mouse_x, mouse_y;
|
double mouse_x, mouse_y;
|
||||||
glfwGetCursorPos(g_Window, &mouse_x, &mouse_y);
|
glfwGetCursorPos(g_Window, &mouse_x, &mouse_y);
|
||||||
mouse_x *= (float)display_w / w; // Convert mouse coordinates to pixels
|
mouse_x *= (float)display_w / w; // Convert mouse coordinates to pixels
|
||||||
mouse_y *= (float)display_h / h;
|
mouse_y *= (float)display_h / h;
|
||||||
io.MousePos = ImVec2((float)mouse_x, (float)mouse_y); // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.)
|
io.MousePos = ImVec2((float)mouse_x, (float)mouse_y); // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
io.MousePos = ImVec2(-1,-1);
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
|
@ -233,11 +233,18 @@ void ImGui_ImplGlfw_NewFrame()
|
|||||||
|
|
||||||
// Setup inputs
|
// Setup inputs
|
||||||
// (we already got mouse wheel, keyboard keys & characters from glfw callbacks polled in glfwPollEvents())
|
// (we already got mouse wheel, keyboard keys & characters from glfw callbacks polled in glfwPollEvents())
|
||||||
|
if (glfwGetWindowAttrib(g_Window, GLFW_FOCUSED))
|
||||||
|
{
|
||||||
double mouse_x, mouse_y;
|
double mouse_x, mouse_y;
|
||||||
glfwGetCursorPos(g_Window, &mouse_x, &mouse_y);
|
glfwGetCursorPos(g_Window, &mouse_x, &mouse_y);
|
||||||
mouse_x *= (float)display_w / w; // Convert mouse coordinates to pixels
|
mouse_x *= (float)display_w / w; // Convert mouse coordinates to pixels
|
||||||
mouse_y *= (float)display_h / h;
|
mouse_y *= (float)display_h / h;
|
||||||
io.MousePos = ImVec2((float)mouse_x, (float)mouse_y); // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.)
|
io.MousePos = ImVec2((float)mouse_x, (float)mouse_y); // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
io.MousePos = ImVec2(-1,-1);
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user