mirror of
https://github.com/ocornut/imgui.git
synced 2025-01-19 01:34:08 +01:00
Drag and Drop: Fixes an issue when elapsing payload would be based on last payload frame instead of last drag source frame.
This commit is contained in:
parent
32a037c030
commit
8c517fee35
@ -62,6 +62,9 @@ Other changes:
|
|||||||
Added corresponding ImGuiCol_TabSelectedOverline and ImGuiCol_TabDimmedSelectedOverline colors.
|
Added corresponding ImGuiCol_TabSelectedOverline and ImGuiCol_TabDimmedSelectedOverline colors.
|
||||||
- Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern sets
|
- Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern sets
|
||||||
active id so a multi-frame extern source doesn't interfere with hovered widgets. (#143)
|
active id so a multi-frame extern source doesn't interfere with hovered widgets. (#143)
|
||||||
|
- Drag and Drop: Fixes an issue when elapsing payload would be based on last payload
|
||||||
|
frame instead of last drag source frame, which makes a difference if not resubmitting
|
||||||
|
payload every frame.
|
||||||
- Examples: GLFW+Vulkan, SDL+Vulkan: handle swap chain resize even without Vulkan
|
- Examples: GLFW+Vulkan, SDL+Vulkan: handle swap chain resize even without Vulkan
|
||||||
returning VK_SUBOPTIMAL_KHR, which doesn't seem to happen on Wayland. (#7671)
|
returning VK_SUBOPTIMAL_KHR, which doesn't seem to happen on Wayland. (#7671)
|
||||||
[@AndreiNego, @ocornut]
|
[@AndreiNego, @ocornut]
|
||||||
|
@ -5136,7 +5136,7 @@ void ImGui::EndFrame()
|
|||||||
if (g.DragDropActive)
|
if (g.DragDropActive)
|
||||||
{
|
{
|
||||||
bool is_delivered = g.DragDropPayload.Delivery;
|
bool is_delivered = g.DragDropPayload.Delivery;
|
||||||
bool is_elapsed = (g.DragDropPayload.DataFrameCount + 1 < g.FrameCount) && ((g.DragDropSourceFlags & ImGuiDragDropFlags_SourceAutoExpirePayload) || !IsMouseDown(g.DragDropMouseButton));
|
bool is_elapsed = (g.DragDropSourceFrameCount + 1 < g.FrameCount) && ((g.DragDropSourceFlags & ImGuiDragDropFlags_SourceAutoExpirePayload) || !IsMouseDown(g.DragDropMouseButton));
|
||||||
if (is_delivered || is_elapsed)
|
if (is_delivered || is_elapsed)
|
||||||
ClearDragDrop();
|
ClearDragDrop();
|
||||||
}
|
}
|
||||||
@ -13306,7 +13306,7 @@ bool ImGui::SetDragDropPayload(const char* type, const void* data, size_t data_s
|
|||||||
IM_ASSERT(strlen(type) < IM_ARRAYSIZE(payload.DataType) && "Payload type can be at most 32 characters long");
|
IM_ASSERT(strlen(type) < IM_ARRAYSIZE(payload.DataType) && "Payload type can be at most 32 characters long");
|
||||||
IM_ASSERT((data != NULL && data_size > 0) || (data == NULL && data_size == 0));
|
IM_ASSERT((data != NULL && data_size > 0) || (data == NULL && data_size == 0));
|
||||||
IM_ASSERT(cond == ImGuiCond_Always || cond == ImGuiCond_Once);
|
IM_ASSERT(cond == ImGuiCond_Always || cond == ImGuiCond_Once);
|
||||||
IM_ASSERT(payload.SourceId != 0); // Not called between BeginDragDropSource() and EndDragDropSource()
|
IM_ASSERT(payload.SourceId != 0); // Not called between BeginDragDropSource() and EndDragDropSource()
|
||||||
|
|
||||||
if (cond == ImGuiCond_Always || payload.DataFrameCount == -1)
|
if (cond == ImGuiCond_Always || payload.DataFrameCount == -1)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user