hello_imgui icon indicating copy to clipboard operation
hello_imgui copied to clipboard

Can I change a borderless window size?

Open vertexi opened this issue 1 year ago • 3 comments
trafficstars

I want to create a window that borderless = true and resizable = true. But according to GLFW's document

GLFW_DECORATED specifies whether the windowed mode window will have window decorations such as a border, a close widget, etc. An undecorated window will not be resizable by the user but will still allow the user to generate close events on some platforms. Possible values are GLFW_TRUE and GLFW_FALSE. This hint is ignored for full screen windows.

So, I wonder if I can write some code to detect the mouse whether drag the corner of window or not, then call function like setwindowsize().

vertexi avatar Dec 01 '23 14:12 vertexi

you should try. ImGui provides ImGui::GetMousePos() + ImGui::IsMouseDown() which could help you.

But you may experience difficulties. You are fighting against the OS and/or Glfw.

pthom avatar Dec 01 '23 23:12 pthom

This is now possible, see new content of AppWindowParams:

struct AppWindowParams
{
    std::string windowTitle;

    WindowGeometry windowGeometry;

    // if true, then save & restore from last run
    bool restorePreviousGeometry = false;

    bool resizable = true;
    bool hidden = false;

    bool   borderless = false;
    bool   borderlessMovable = true;
    bool   borderlessResizable = true;
    bool   borderlessClosable = true;
    ImVec4 borderlessHighlightColor = ImVec4(0.2f, 0.4f, 1.f, 0.3f);


    EdgeInsets edgeInsets;
    bool       handleEdgeInsets = true;
};

pthom avatar Jan 03 '24 20:01 pthom

Magnificent work! Thank you.

vertexi avatar Jan 04 '24 07:01 vertexi