mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	Drag and Drop: Disable tracking mouse button ownership when an external drag source is active, to make it easier to achieve drag and drop over multiple OS windows. (#143)
This commit is contained in:
		| @@ -2456,8 +2456,9 @@ void ImGui::NewFrame() | |||||||
|     g.OsImePosRequest = ImVec2(1.0f, 1.0f); // OS Input Method Editor showing on top-left of our window by default |     g.OsImePosRequest = ImVec2(1.0f, 1.0f); // OS Input Method Editor showing on top-left of our window by default | ||||||
|  |  | ||||||
|     // If mouse was first clicked outside of ImGui bounds we also cancel out hovering. |     // If mouse was first clicked outside of ImGui bounds we also cancel out hovering. | ||||||
|     // FIXME: For patterns of drag and drop between "application" and "imgui" we may need to rework/remove this test (first committed 311c0ca9 on 2015/02) |     // FIXME: For patterns of drag and drop across OS windows, we may need to rework/remove this test (first committed 311c0ca9 on 2015/02) | ||||||
|     if (!mouse_avail_to_imgui) |     bool mouse_dragging_extern_payload = g.DragDropActive && (g.DragDropSourceFlags & ImGuiDragDropFlags_SourceExtern) != 0; | ||||||
|  |     if (!mouse_avail_to_imgui && !mouse_dragging_extern_payload) | ||||||
|         g.HoveredWindow = g.HoveredRootWindow = NULL; |         g.HoveredWindow = g.HoveredRootWindow = NULL; | ||||||
|  |  | ||||||
|     // Scale & Scrolling |     // Scale & Scrolling | ||||||
|   | |||||||
| @@ -1734,7 +1734,10 @@ void ImGui::ShowTestWindow(bool* p_open) | |||||||
|  |  | ||||||
|         if (ImGui::TreeNode("Keyboard & Mouse State")) |         if (ImGui::TreeNode("Keyboard & Mouse State")) | ||||||
|         { |         { | ||||||
|  |             if (ImGui::IsMousePosValid()) | ||||||
|                 ImGui::Text("Mouse pos: (%g, %g)", io.MousePos.x, io.MousePos.y); |                 ImGui::Text("Mouse pos: (%g, %g)", io.MousePos.x, io.MousePos.y); | ||||||
|  |             else | ||||||
|  |                 ImGui::Text("Mouse pos: <INVALID>"); | ||||||
|             ImGui::Text("Mouse down:");     for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (io.MouseDownDuration[i] >= 0.0f)   { ImGui::SameLine(); ImGui::Text("b%d (%.02f secs)", i, io.MouseDownDuration[i]); } |             ImGui::Text("Mouse down:");     for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (io.MouseDownDuration[i] >= 0.0f)   { ImGui::SameLine(); ImGui::Text("b%d (%.02f secs)", i, io.MouseDownDuration[i]); } | ||||||
|             ImGui::Text("Mouse clicked:");  for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseClicked(i))          { ImGui::SameLine(); ImGui::Text("b%d", i); } |             ImGui::Text("Mouse clicked:");  for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseClicked(i))          { ImGui::SameLine(); ImGui::Text("b%d", i); } | ||||||
|             ImGui::Text("Mouse dbl-clicked:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseDoubleClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } |             ImGui::Text("Mouse dbl-clicked:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseDoubleClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user