Comments (2)
The problem is caused by the fact that on a Begin()
call to append, we don't call this block:
// We fill last item data based on Title Bar/Tab, in order for IsItemHovered() and IsItemActive() to be usable after Begin().
// This is useful to allow creating context menus on title bar only, etc.
SetLastItemData(window->MoveId, g.CurrentItemFlags, IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max, false) ? ImGuiItemStatusFlags_HoveredRect : 0, title_bar_rect);
Therefore we inherit last value of g.LastItemData.ID & co.
There is special handling in IsItemHovered()
to handle situation where a window is collapsed, leading all widgets (e.g. Button("123") to early out and therefore never write to this identifier.
We could perfectly compute title_bar_rect
and copy the whole block in the else/appending case:
// When reusing window again multiple times a frame, just append content (don't need to setup again)
if (first_begin_of_the_frame)
{
....
}
else
{
// Append
SetCurrentWindow(window);
ImRect title_bar_rect = window->TitleBarRect();
SetLastItemData(window->MoveId, g.CurrentItemFlags, IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max, false) ? ImGuiItemStatusFlags_HoveredRect : 0, title_bar_rect);
}
That technically also fixes using e.g. IsItemHovered() right after an append-Begin():
ImGui::Begin("Another #7506 issue");
ImGui::End();
ImGui::Begin("Another #7506 issue");
if (ImGui::IsItemHovered())
ImGui::SetTooltip("Hovering title bar!");
ImGui::End();
This is now fixed as well.
Actual fix goes through a function as the logic is longer in docking.
Pushed fa0120e
from imgui.
Added a regression test: ocornut/imgui_test_engine@fc5105f
from imgui.
Related Issues (20)
- Changing hIcon and hIconSm are not changing to custom icon HOT 1
- io.WantCaptureMouse doesn't work for scrollwheel HOT 3
- How to use ImGui rounding style for ImGui::MenuItems? HOT 2
- Scale to window maintaining aspect ratio, but Viewport won't center HOT 2
- Please help me to clarify the concepts of some specific terms HOT 2
- WebGPU ImGui::Image not accepts different texture formats HOT 3
- InputText CTRL+V paste fails if text is too long HOT 4
- for some reason when i try to change the color of my text and try to do pop style color it crashed? HOT 3
- Why does ImGui tables insert extra ID into the id path of the child widgets? HOT 1
- Emscripten build runtime error: Unable to preventDefault inside passive event listener HOT 5
- getting tightest possible horizontal spacing HOT 7
- #7595 turned into an issue related to fonts loading problem after upgrade (ImGui/SDL3/Vulkan)
- Color too dark custom checkbox color fill HOT 3
- No horizontal scrollbar in a window when calling SetNextWindowContentSize with size larger than the screen HOT 6
- Plugin architecture in imgui(C++)? HOT 3
- Misbehaving GUI when i through libigl to use imgui HOT 2
- DXGI warning with DX11 backend about `DXGI_SWAP_EFFECT_DISCARD` HOT 4
- Transparent issue HOT 3
- ImGui Dockspace not working when viewports are enabled HOT 11
- Tabbar containing dockspace HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from imgui.