mirror of
https://github.com/ocornut/imgui.git
synced 2026-01-11 00:04:24 +00:00
parent
cbf9e3f554
commit
b431114194
4 changed files with 11 additions and 1 deletions
|
|
@ -111,6 +111,12 @@ Docking+Viewports Branch:
|
||||||
e.g. a ClearActiveID() call would leave the dragged viewport with the
|
e.g. a ClearActiveID() call would leave the dragged viewport with the
|
||||||
normally temporary ImGuiViewportFlags_NoInputs flag, preventing further
|
normally temporary ImGuiViewportFlags_NoInputs flag, preventing further
|
||||||
interactions with the viewport. (#5324) (thanks @mdelaharpe)
|
interactions with the viewport. (#5324) (thanks @mdelaharpe)
|
||||||
|
- Viewports: added io.ConfigViewportPlatformFocusSetsImGuiFocus to opt-out
|
||||||
|
of focusing imgui windows When a platform window is focused (e.g. using Alt+Tab,
|
||||||
|
clicking Platform Title Bar). In principle this is better enabled but we
|
||||||
|
provide an opt-out because some Linux window managers tend to eagerly focus
|
||||||
|
windows (on e.g. mouse hover, or even on a simple window pos/size change).
|
||||||
|
(#6299, #6462)
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -1572,6 +1572,7 @@ ImGuiIO::ImGuiIO()
|
||||||
ConfigViewportsNoTaskBarIcon = false;
|
ConfigViewportsNoTaskBarIcon = false;
|
||||||
ConfigViewportsNoDecoration = true;
|
ConfigViewportsNoDecoration = true;
|
||||||
ConfigViewportsNoDefaultParent = false;
|
ConfigViewportsNoDefaultParent = false;
|
||||||
|
ConfigViewportPlatformFocusSetsImGuiFocus = true;
|
||||||
|
|
||||||
// Miscellaneous options
|
// Miscellaneous options
|
||||||
MouseDrawCursor = false;
|
MouseDrawCursor = false;
|
||||||
|
|
@ -16384,7 +16385,7 @@ static void ImGui::UpdateViewportsNewFrame()
|
||||||
// - if focus didn't happen because we destroyed another window (#6462)
|
// - if focus didn't happen because we destroyed another window (#6462)
|
||||||
// FIXME: perhaps 'FocusTopMostWindowUnderOne()' can handle the 'focused_window->Window != NULL' case as well.
|
// FIXME: perhaps 'FocusTopMostWindowUnderOne()' can handle the 'focused_window->Window != NULL' case as well.
|
||||||
const bool apply_imgui_focus_on_focused_viewport = !IsAnyMouseDown() && !prev_focused_has_been_destroyed;
|
const bool apply_imgui_focus_on_focused_viewport = !IsAnyMouseDown() && !prev_focused_has_been_destroyed;
|
||||||
if (apply_imgui_focus_on_focused_viewport)
|
if (apply_imgui_focus_on_focused_viewport && g.IO.ConfigViewportPlatformFocusSetsImGuiFocus)
|
||||||
{
|
{
|
||||||
focused_viewport->LastFocusedHadNavWindow |= (g.NavWindow != NULL) && (g.NavWindow->Viewport == focused_viewport); // Update so a window changing viewport won't lose focus.
|
focused_viewport->LastFocusedHadNavWindow |= (g.NavWindow != NULL) && (g.NavWindow->Viewport == focused_viewport); // Update so a window changing viewport won't lose focus.
|
||||||
ImGuiFocusRequestFlags focus_request_flags = ImGuiFocusRequestFlags_UnlessBelowModal | ImGuiFocusRequestFlags_RestoreFocusedChild;
|
ImGuiFocusRequestFlags focus_request_flags = ImGuiFocusRequestFlags_UnlessBelowModal | ImGuiFocusRequestFlags_RestoreFocusedChild;
|
||||||
|
|
|
||||||
1
imgui.h
1
imgui.h
|
|
@ -2469,6 +2469,7 @@ struct ImGuiIO
|
||||||
bool ConfigViewportsNoTaskBarIcon; // = false // Disable default OS task bar icon flag for secondary viewports. When a viewport doesn't want a task bar icon, ImGuiViewportFlags_NoTaskBarIcon will be set on it.
|
bool ConfigViewportsNoTaskBarIcon; // = false // Disable default OS task bar icon flag for secondary viewports. When a viewport doesn't want a task bar icon, ImGuiViewportFlags_NoTaskBarIcon will be set on it.
|
||||||
bool ConfigViewportsNoDecoration; // = true // Disable default OS window decoration flag for secondary viewports. When a viewport doesn't want window decorations, ImGuiViewportFlags_NoDecoration will be set on it. Enabling decoration can create subsequent issues at OS levels (e.g. minimum window size).
|
bool ConfigViewportsNoDecoration; // = true // Disable default OS window decoration flag for secondary viewports. When a viewport doesn't want window decorations, ImGuiViewportFlags_NoDecoration will be set on it. Enabling decoration can create subsequent issues at OS levels (e.g. minimum window size).
|
||||||
bool ConfigViewportsNoDefaultParent; // = false // Disable default OS parenting to main viewport for secondary viewports. By default, viewports are marked with ParentViewportId = <main_viewport>, expecting the platform backend to setup a parent/child relationship between the OS windows (some backend may ignore this). Set to true if you want the default to be 0, then all viewports will be top-level OS windows.
|
bool ConfigViewportsNoDefaultParent; // = false // Disable default OS parenting to main viewport for secondary viewports. By default, viewports are marked with ParentViewportId = <main_viewport>, expecting the platform backend to setup a parent/child relationship between the OS windows (some backend may ignore this). Set to true if you want the default to be 0, then all viewports will be top-level OS windows.
|
||||||
|
bool ConfigViewportPlatformFocusSetsImGuiFocus; //= true // When a platform window is focused (e.g. using Alt+Tab, clicking Platform Title Bar), apply corresponding focus on imgui windows (may clear focus/active id from imgui windows location in other platform windows). In principle this is better enabled but we provide an opt-out, because some Linux window managers tend to eagerly focus windows (e.g. on mouse hover, or even a simple window pos/size change).
|
||||||
|
|
||||||
// DPI/Scaling options
|
// DPI/Scaling options
|
||||||
// This may keep evolving during 1.92.x releases. Expect some turbulence.
|
// This may keep evolving during 1.92.x releases. Expect some turbulence.
|
||||||
|
|
|
||||||
|
|
@ -556,6 +556,8 @@ void ImGui::ShowDemoWindow(bool* p_open)
|
||||||
ImGui::SameLine(); HelpMarker("Toggling this at runtime is normally unsupported (most platform backends won't refresh the decoration right away).");
|
ImGui::SameLine(); HelpMarker("Toggling this at runtime is normally unsupported (most platform backends won't refresh the decoration right away).");
|
||||||
ImGui::Checkbox("io.ConfigViewportsNoDefaultParent", &io.ConfigViewportsNoDefaultParent);
|
ImGui::Checkbox("io.ConfigViewportsNoDefaultParent", &io.ConfigViewportsNoDefaultParent);
|
||||||
ImGui::SameLine(); HelpMarker("Toggling this at runtime is normally unsupported (most platform backends won't refresh the parenting right away).");
|
ImGui::SameLine(); HelpMarker("Toggling this at runtime is normally unsupported (most platform backends won't refresh the parenting right away).");
|
||||||
|
ImGui::Checkbox("io.ConfigViewportPlatformFocusSetsImGuiFocus", &io.ConfigViewportPlatformFocusSetsImGuiFocus);
|
||||||
|
ImGui::SameLine(); HelpMarker("When a platform window is focused (e.g. using Alt+Tab, clicking Platform Title Bar), apply corresponding focus on imgui windows (may clear focus/active id from imgui windows location in other platform windows). In principle this is better enabled but we provide an opt-out, because some Linux window managers tend to eagerly focus windows (e.g. on mouse hover, or even a simple window pos/size change).");
|
||||||
ImGui::Unindent();
|
ImGui::Unindent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue