Demo: Custom Rendering: Tweak so end of line can be dropped outside of canvas, more pleasing.

This commit is contained in:
ocornut 2016-11-06 18:13:14 +01:00
parent 907dd2ed20
commit 357167f917

View File

@ -2041,14 +2041,7 @@ static void ShowExampleAppCustomRendering(bool* p_open)
bool adding_preview = false; bool adding_preview = false;
ImGui::InvisibleButton("canvas", canvas_size); ImGui::InvisibleButton("canvas", canvas_size);
if (ImGui::IsItemHovered())
{
ImVec2 mouse_pos_in_canvas = ImVec2(ImGui::GetIO().MousePos.x - canvas_pos.x, ImGui::GetIO().MousePos.y - canvas_pos.y); ImVec2 mouse_pos_in_canvas = ImVec2(ImGui::GetIO().MousePos.x - canvas_pos.x, ImGui::GetIO().MousePos.y - canvas_pos.y);
if (!adding_line && ImGui::IsMouseClicked(0))
{
points.push_back(mouse_pos_in_canvas);
adding_line = true;
}
if (adding_line) if (adding_line)
{ {
adding_preview = true; adding_preview = true;
@ -2056,6 +2049,13 @@ static void ShowExampleAppCustomRendering(bool* p_open)
if (!ImGui::GetIO().MouseDown[0]) if (!ImGui::GetIO().MouseDown[0])
adding_line = adding_preview = false; adding_line = adding_preview = false;
} }
if (ImGui::IsItemHovered())
{
if (!adding_line && ImGui::IsMouseClicked(0))
{
points.push_back(mouse_pos_in_canvas);
adding_line = true;
}
if (ImGui::IsMouseClicked(1) && !points.empty()) if (ImGui::IsMouseClicked(1) && !points.empty())
{ {
adding_line = adding_preview = false; adding_line = adding_preview = false;