@ -1139,6 +1139,7 @@ static void RenderWindowDecorations(ImGuiWindow* window, const ImRec
static void RenderWindowTitleBarContents ( ImGuiWindow * window , const ImRect & title_bar_rect , const char * name , bool * p_open ) ;
static void RenderDimmedBackgroundBehindWindow ( ImGuiWindow * window , ImU32 col ) ;
static void RenderDimmedBackgrounds ( ) ;
static void SetLastItemDataForWindow ( ImGuiWindow * window , const ImRect & rect ) ;
// Viewports
const ImGuiID IMGUI_VIEWPORT_DEFAULT_ID = 0x11111111 ; // Using an arbitrary constant instead of e.g. ImHashStr("ViewportDefault", 0); so it's easier to spot in the debugger. The exact value doesn't matter.
@ -6992,7 +6993,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
// 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 ) ;
SetLastItemDataForWindow ( window , title_bar_rect ) ;
// [DEBUG]
# ifndef IMGUI_DISABLE_DEBUG_TOOLS
@ -7010,6 +7011,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
{
// Append
SetCurrentWindow ( window ) ;
SetLastItemDataForWindow ( window , window - > TitleBarRect ( ) ) ;
}
PushClipRect ( window - > InnerClipRect . Min , window - > InnerClipRect . Max , true ) ;
@ -7082,6 +7084,12 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
return ! window - > SkipItems ;
}
static void ImGui : : SetLastItemDataForWindow ( ImGuiWindow * window , const ImRect & rect )
{
ImGuiContext & g = * GImGui ;
SetLastItemData ( window - > MoveId , g . CurrentItemFlags , IsMouseHoveringRect ( rect . Min , rect . Max , false ) ? ImGuiItemStatusFlags_HoveredRect : 0 , rect ) ;
}
void ImGui : : End ( )
{
ImGuiContext & g = * GImGui ;