diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index 8e6b15cb98a..e58332180eb 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -1106,6 +1106,7 @@ public void mouseClicked(MouseEvent e) private class Layout implements LayoutManager2 { + private int prevState; private int previousContentWidth; @Override @@ -1144,6 +1145,9 @@ public Dimension minimumLayoutSize(Container content) @Override public void layoutContainer(Container content) { + int changed = prevState ^ frame.getExtendedState(); + prevState = frame.getExtendedState(); + Component client = content.getComponent(0); Component sidebar = content.getComponent(1); @@ -1199,7 +1203,10 @@ public void layoutContainer(Container content) sidebar.setBounds(clientWidth, 0, sidebarWidth, height); frame.revalidateMinimumSize(); - frame.containedSetSize(frame.getPreferredSize()); + if ((changed & Frame.MAXIMIZED_BOTH) == 0 && OSType.getOSType() == OSType.Windows) + { + frame.containedSetSize(frame.getPreferredSize()); + } log.trace("finishing layout - content={} client={} sidebar={} frame={}", content.getWidth(), client.getWidth(), sidebar.getWidth(), frame.getWidth()); }