mirror of
https://github.com/ocornut/imgui.git
synced 2026-04-30 03:04:24 +00:00
Merge branch 'master' into docking
# Conflicts: # imgui.cpp
This commit is contained in:
23
imgui.cpp
23
imgui.cpp
@@ -392,7 +392,15 @@ CODE
|
||||
- likewise io.MousePos and GetMousePos() will use OS coordinates.
|
||||
If you query mouse positions to interact with non-imgui coordinates you will need to offset them, e.g. subtract GetWindowViewport()->Pos.
|
||||
|
||||
- 2022/07/08 (1.88) - inputs: removed io.NavInputs[] and ImGuiNavInput enum (following 1.87 changes).
|
||||
- 2022/08/03 (1.89) - changed signature of ImageButton() function. Kept redirection function (will obsolete).
|
||||
- added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter.
|
||||
- old signature: bool ImageButton(ImTextureID tex_id, ImVec2 size, ImVec2 uv0 = ImVec2(0,0), ImVec2 uv1 = ImVec2(1,1), int frame_padding = -1, ImVec4 bg_col = ImVec4(0,0,0,0), ImVec4 tint_col = ImVec4(1,1,1,1));
|
||||
- used the ImTextureID value to create an ID. This was inconsistent with other functions, led to ID conflicts, and caused problems with engines using transient ImTextureID values.
|
||||
- had a FramePadding override which was inconsistent with other functions and made the already-long signature even longer.
|
||||
- new signature: bool ImageButton(const char* str_id, ImTextureID tex_id, ImVec2 size, ImVec2 uv0 = ImVec2(0,0), ImVec2 uv1 = ImVec2(1,1), ImVec4 bg_col = ImVec4(0,0,0,0), ImVec4 tint_col = ImVec4(1,1,1,1));
|
||||
- requires an explicit identifier. You may still use e.g. PushID() calls and then pass an empty identifier.
|
||||
- always uses style.FramePadding for padding, to be consistent with other buttons. You may use PushStyleVar() to alter this.
|
||||
- 2022/07/08 (1.89) - inputs: removed io.NavInputs[] and ImGuiNavInput enum (following 1.87 changes).
|
||||
- Official backends from 1.87+ -> no issue.
|
||||
- Official backends from 1.60 to 1.86 -> will build and convert gamepad inputs, unless IMGUI_DISABLE_OBSOLETE_KEYIO is defined. Need updating!
|
||||
- Custom backends not writing to io.NavInputs[] -> no issue.
|
||||
@@ -3932,7 +3940,7 @@ void ImGui::StartMouseMovingWindow(ImGuiWindow* window)
|
||||
g.NavDisableHighlight = true;
|
||||
g.ActiveIdClickOffset = g.IO.MouseClickedPos[0] - window->RootWindowDockTree->Pos;
|
||||
g.ActiveIdNoClearOnFocusLoss = true;
|
||||
SetActiveIdUsingNavAndKeys();
|
||||
SetActiveIdUsingAllKeyboardKeys();
|
||||
|
||||
bool can_move_window = true;
|
||||
if ((window->Flags & ImGuiWindowFlags_NoMove) || (window->RootWindowDockTree->Flags & ImGuiWindowFlags_NoMove))
|
||||
@@ -5489,12 +5497,17 @@ void ImGui::SetItemUsingMouseWheel()
|
||||
}
|
||||
}
|
||||
|
||||
void ImGui::SetActiveIdUsingNavAndKeys()
|
||||
// FIXME: Technically this also prevents use of Gamepad D-Pad, may not be an issue.
|
||||
void ImGui::SetActiveIdUsingAllKeyboardKeys()
|
||||
{
|
||||
ImGuiContext& g = *GImGui;
|
||||
IM_ASSERT(g.ActiveId != 0);
|
||||
g.ActiveIdUsingNavDirMask = ~(ImU32)0;
|
||||
g.ActiveIdUsingKeyInputMask.SetAllBits();
|
||||
g.ActiveIdUsingKeyInputMask.SetBitRange(ImGuiKey_Keyboard_BEGIN, ImGuiKey_Keyboard_END);
|
||||
g.ActiveIdUsingKeyInputMask.SetBit(ImGuiKey_ModCtrl);
|
||||
g.ActiveIdUsingKeyInputMask.SetBit(ImGuiKey_ModShift);
|
||||
g.ActiveIdUsingKeyInputMask.SetBit(ImGuiKey_ModAlt);
|
||||
g.ActiveIdUsingKeyInputMask.SetBit(ImGuiKey_ModSuper);
|
||||
NavMoveRequestCancel();
|
||||
}
|
||||
|
||||
@@ -11873,7 +11886,7 @@ bool ImGui::BeginDragDropSource(ImGuiDragDropFlags flags)
|
||||
source_drag_active = IsMouseDragging(mouse_button);
|
||||
|
||||
// Disable navigation and key inputs while dragging + cancel existing request if any
|
||||
SetActiveIdUsingNavAndKeys();
|
||||
SetActiveIdUsingAllKeyboardKeys();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user