Closed vertexi closed 10 months ago
My advice to refactor was perhaps difficult, since refactoring it was not easy.
Anyhow, I'm sorry, I preferred the code before your modifications, it was simpler to understand.
Let's restart from my original code, and let's forget about the idea to refactor it (sorry).
My opinions:
Thanks for your pertinent advice, I learned c++ refactoring skills from it.
Also, in the original version, there was no detection of whether the current focused window was the main viewport or not, so when using the multiple viewports feature, dragging other viewports onto the main window would cause the main window boundary to change by mistake.
My original detection code raises the segmentation fault
// check if main viewport focused
// This test can raise a segmentation fault!!! => disabled
// if (GImGui->WindowsFocusOrder.back()->Viewport->Idx != 0)
// {
// return;
// }
I've modified it as follows, possibly fixing it
// check if main viewport focused
// This test can raise a segmentation fault!!! => disabled
if (GImGui->WindowsFocusOrder.empty()) return;
auto& windowFocused = GImGui->WindowsFocusOrder.back();
if (windowFocused == NULL) return;
auto& viewportFocused = windowFocused->Viewport;
int viewportFocusedIdx = viewportFocused ? viewportFocused->Idx : -1;
if (viewportFocusedIdx != 0)
{
return;
}
Thanks again for your suggestion, I hope it helps.
Hello,
Sorry for the delay. I implemented movable and resizable borderless windows. Since it requires lots of testings (Glfw, Sdl, OpenGl, Vulkan, Windows, Mac, Linux) I preferred to implement it myself.
It is now available. See https://github.com/pthom/hello_imgui/commit/9315d940da2bd570c64964f1c47e077c277a2a5b
Happy new year!
I am not sure this way to factory is elegant, hope it can help.
Any advice? I would like to continue working on this.