mirror of
https://github.com/ocornut/imgui.git
synced 2025-01-18 07:23:01 +08:00
Windows: legacy SetWindowFontScale() is properly inherited by nested child windows. (#2701, #8138, #1018)
This commit is contained in:
parent
4c64ba16c5
commit
b7c27c5333
@ -51,6 +51,9 @@ Other changes:
|
||||
snapped to pixels. Effectively it would only be noticeable when hinting
|
||||
is disabled with ImGuiFreeTypeBuilderFlags_NoHinting, as hinting itself
|
||||
snaps glyph advances.
|
||||
- Windows: legacy SetWindowFontScale() is properly inherited by nested child
|
||||
windows. Note that an upcoming major release should make this obsolete,
|
||||
but in the meanwhile it works better now. (#2701, #8138, #1018)
|
||||
- Examples: DirectX12: Reduced number of frame in flight from 3 to 2 in
|
||||
provided example, to reduce latency.
|
||||
- Examples: Vulkan: better handle VK_SUBOPTIMAL_KHR being returned by
|
||||
|
@ -4276,7 +4276,7 @@ ImGuiWindow::ImGuiWindow(ImGuiContext* ctx, const char* name) : DrawListInst(NUL
|
||||
SetWindowPosVal = SetWindowPosPivot = ImVec2(FLT_MAX, FLT_MAX);
|
||||
LastFrameActive = -1;
|
||||
LastTimeActive = -1.0f;
|
||||
FontWindowScale = 1.0f;
|
||||
FontWindowScale = FontWindowScaleParents = 1.0f;
|
||||
SettingsOffset = -1;
|
||||
DrawList = &DrawListInst;
|
||||
DrawList->_OwnerName = Name;
|
||||
@ -7037,6 +7037,9 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
|
||||
// There's little point to expose a flag to set this: because the interesting cases won't be using parent_window_in_stack,
|
||||
// e.g. linking a tool window in a standalone viewport to a document window, regardless of their Begin() stack parenting. (#6798)
|
||||
window->ParentWindowForFocusRoute = (flags & ImGuiWindowFlags_ChildWindow) ? parent_window_in_stack : NULL;
|
||||
|
||||
// Inherent SetWindowFontScale() from parent until we fix this system...
|
||||
window->FontWindowScaleParents = parent_window ? parent_window->FontWindowScaleParents * parent_window->FontWindowScale : 1.0f;
|
||||
}
|
||||
|
||||
// Add to focus scope stack
|
||||
|
2
imgui.h
2
imgui.h
@ -29,7 +29,7 @@
|
||||
// Library Version
|
||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
||||
#define IMGUI_VERSION "1.91.8 WIP"
|
||||
#define IMGUI_VERSION_NUM 19171
|
||||
#define IMGUI_VERSION_NUM 19172
|
||||
#define IMGUI_HAS_TABLE
|
||||
|
||||
/*
|
||||
|
@ -2551,6 +2551,7 @@ struct IMGUI_API ImGuiWindow
|
||||
ImGuiStorage StateStorage;
|
||||
ImVector<ImGuiOldColumns> ColumnsStorage;
|
||||
float FontWindowScale; // User scale multiplier per-window, via SetWindowFontScale()
|
||||
float FontWindowScaleParents;
|
||||
int SettingsOffset; // Offset into SettingsWindows[] (offsets are always valid as we only grow the array from the back)
|
||||
|
||||
ImDrawList* DrawList; // == &DrawListInst (for backward compatibility reason with code using imgui_internal.h we keep this a pointer)
|
||||
@ -2585,7 +2586,7 @@ public:
|
||||
|
||||
// We don't use g.FontSize because the window may be != g.CurrentWindow.
|
||||
ImRect Rect() const { return ImRect(Pos.x, Pos.y, Pos.x + Size.x, Pos.y + Size.y); }
|
||||
float CalcFontSize() const { ImGuiContext& g = *Ctx; float scale = g.FontBaseSize * FontWindowScale; if (ParentWindow) scale *= ParentWindow->FontWindowScale; return scale; }
|
||||
float CalcFontSize() const { ImGuiContext& g = *Ctx; return g.FontBaseSize * FontWindowScale * FontWindowScaleParents; }
|
||||
ImRect TitleBarRect() const { return ImRect(Pos, ImVec2(Pos.x + SizeFull.x, Pos.y + TitleBarHeight)); }
|
||||
ImRect MenuBarRect() const { float y1 = Pos.y + TitleBarHeight; return ImRect(Pos.x, y1, Pos.x + SizeFull.x, y1 + MenuBarHeight); }
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user