From 2effe5902ec5317fcfbdbd8cbadddf2aaeb664da Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sun, 19 Dec 2021 11:15:52 +0100 Subject: [PATCH] size hint fixes --- src/events/events.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/events/events.cpp b/src/events/events.cpp index efd87c8..5699714 100644 --- a/src/events/events.cpp +++ b/src/events/events.cpp @@ -223,9 +223,9 @@ CWindow* Events::remapFloatingWindow(int windowID, int forcemonitor) { const auto succ = xcb_icccm_get_wm_normal_hints_reply(g_pWindowManager->DisplayConnection, xcb_icccm_get_wm_normal_hints_unchecked(g_pWindowManager->DisplayConnection, window.getDrawable()), &sizeHints, NULL); if (succ && nextWindowCentered /* Basically means dialog */) { - // vvv gets the max value out of the geometry, size hint, size hint max and size hint base. - auto NEWSIZE = Vector2D(std::max(std::max(sizeHints.width, (int32_t)window.getDefaultSize().x), std::max(sizeHints.max_width, sizeHints.base_width)), - std::max(std::max(sizeHints.height, (int32_t)window.getDefaultSize().y), std::max(sizeHints.max_height, sizeHints.base_height))); + // vvv gets the max value out of the geometry, size hint, (size hint max if < screen) and size hint base. + auto NEWSIZE = Vector2D(std::max(std::max(sizeHints.width, (int32_t)window.getDefaultSize().x), std::max(sizeHints.max_width > g_pWindowManager->monitors[CURRENTSCREEN].vecSize.x ? 0 : sizeHints.max_width, sizeHints.base_width)), + std::max(std::max(sizeHints.height, (int32_t)window.getDefaultSize().y), std::max(sizeHints.max_height > g_pWindowManager->monitors[CURRENTSCREEN].vecSize.y ? 0 : sizeHints.max_height, sizeHints.base_height))); // clip the new size to max monitor size NEWSIZE = Vector2D(std::clamp(NEWSIZE.x, (double)40.f, g_pWindowManager->monitors[CURRENTSCREEN].vecSize.x),