You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: dcimgui/backends/imgui_impl_allegro5.cpp
+41-15Lines changed: 41 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@
8
8
// [X] Platform: Clipboard support (from Allegro 5.1.12).
9
9
// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
10
10
// Missing features or Issues:
11
-
// [ ] Renderer: The renderer is suboptimal as we need to convert vertices manually.
11
+
// [ ] Renderer: The renderer is suboptimal as we need to unindex our buffers and convert vertices manually.
12
12
// [ ] Platform: Missing gamepad support.
13
13
14
14
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
@@ -21,6 +21,8 @@
21
21
22
22
// CHANGELOG
23
23
// (minor and older changes stripped away, please see git history for details)
24
+
// 2025-08-12: Inputs: fixed missing support for ImGuiKey_PrintScreen under Windows, as raw Allegro 5 does not receive it.
25
+
// 2025-08-12: Added ImGui_ImplAllegro5_SetDisplay() function to change current ALLEGRO_DISPLAY, as Allegro applications often need to do that.
24
26
// 2025-07-07: Fixed texture update broken on some platforms where ALLEGRO_LOCK_WRITEONLY needed all texels to be rewritten.
25
27
// 2025-06-11: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplSDLGPU3_CreateFontsTexture() and ImGui_ImplSDLGPU3_DestroyFontsTexture().
26
28
// 2025-02-18: Added ImGuiMouseCursor_Wait and ImGuiMouseCursor_Progress mouse cursor support.
Copy file name to clipboardExpand all lines: dcimgui/dcimgui_internal.h
+2-1Lines changed: 2 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
// **DO NOT EDIT DIRECTLY**
3
3
// https://github.com/dearimgui/dear_bindings
4
4
5
-
// dear imgui, v1.92.2
5
+
// dear imgui, v1.92.2b
6
6
structImVector_ImFontBakedPtr_t { int Size; int Capacity; ImFontBaked** Data; }; // Instantiation of ImVector<ImFontBaked*>
7
7
structImVector_ImFontAtlasPtr_t { int Size; int Capacity; ImFontAtlas** Data; }; // Instantiation of ImVector<ImFontAtlas*>
8
8
// (internal structures/api)
@@ -2166,6 +2166,7 @@ struct ImGuiContext_t
2166
2166
bool ActiveIdHasBeenEditedBefore; // Was the value associated to the widget Edited over the course of the Active state.
2167
2167
bool ActiveIdHasBeenEditedThisFrame;
2168
2168
bool ActiveIdFromShortcut;
2169
+
ImGuiID ActiveIdDisabledId; // When clicking a disabled item we set ActiveId=window->MoveId to avoid interference with widget code. Actual item ID is stored here.
2169
2170
int ActiveIdMouseButton : 8;
2170
2171
ImVec2 ActiveIdClickOffset; // Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior)
// This is roughly matching the behavior of internal-facing ItemHoverable()
4661
+
// - we allow hovering to be true when ActiveId==window->MoveID, so that clicking on non-interactive items such as a Text() item still returns true with IsItemHovered()
4659
4662
// - this should work even for non-interactive items that have no ID, so we cannot use LastItemId
if ((flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) == 0)
4699
4702
if (g.ActiveId != 0 && g.ActiveId != id && !g.ActiveIdAllowOverlap)
4700
-
return false;
4703
+
{
4704
+
// When ActiveId == MoveId it means that either:
4705
+
// - (1) user clicked on void _or_ an item with no id, which triggers moving window (ActiveId is set even when window has _NoMove flag)
4706
+
// - the (id == 0) test handles it, however, IsItemHovered() will leak between id==0 items (mostly visible when using _NoMove). // FIXME: May be fixed.
4707
+
// - (2) user clicked a disabled item. UpdateMouseMovingWindowEndFrame() uses ActiveId == MoveId to avoid interference with item logic + sets ActiveIdDisabledId.
4708
+
bool cancel_is_hovered = true;
4709
+
if (g.ActiveId == window->MoveId && (id == 0 || g.ActiveIdDisabledId == id))
4710
+
cancel_is_hovered = false;
4711
+
if (cancel_is_hovered)
4712
+
return false;
4713
+
}
4701
4714
4702
4715
// Test if interactions on this window are blocked by an active popup or modal.
4703
4716
// The ImGuiHoveredFlags_AllowWhenBlockedByPopup flag will be tested here.
// Cancel moving if clicked over an item which was disabled or inhibited by popups
5174
-
// (when g.HoveredIdIsDisabled == true && g.HoveredId == 0 we are inhibited by popups, when g.HoveredIdIsDisabled == true && g.HoveredId != 0 we are over a disabled item)0 already)
5187
+
// (when g.HoveredIdIsDisabled == true && g.HoveredId == 0 we are inhibited by popups, when g.HoveredIdIsDisabled == true && g.HoveredId != 0 we are over a disabled item)
5175
5188
if (g.HoveredIdIsDisabled)
5189
+
{
5176
5190
g.MovingWindow = NULL;
5191
+
g.ActiveIdDisabledId = g.HoveredId;
5192
+
}
5177
5193
}
5178
5194
else if (root_window == NULL && g.NavWindow != NULL)
0 commit comments