Native window decorations: fixed enabled items is system menu

This commit is contained in:
Karl Tauber
2021-03-06 16:15:19 +01:00
parent a6815574f7
commit cfaeea039b

View File

@@ -601,12 +601,13 @@ public class FlatWindowsNativeWindowBorder
HMENU systemMenu = User32Ex.INSTANCE.GetSystemMenu( hwnd, false );
// update system menu
int style = User32.INSTANCE.GetWindowLong( hwnd, GWL_STYLE );
boolean isMaximized = User32Ex.INSTANCE.IsZoomed( hwnd );
setMenuItemState( systemMenu, SC_RESTORE, isMaximized );
setMenuItemState( systemMenu, SC_MOVE, !isMaximized );
setMenuItemState( systemMenu, SC_SIZE, !isMaximized );
setMenuItemState( systemMenu, SC_MINIMIZE, true );
setMenuItemState( systemMenu, SC_MAXIMIZE, !isMaximized );
setMenuItemState( systemMenu, SC_SIZE, (style & WS_THICKFRAME) != 0 && !isMaximized );
setMenuItemState( systemMenu, SC_MINIMIZE, (style & WS_MINIMIZEBOX) != 0 );
setMenuItemState( systemMenu, SC_MAXIMIZE, (style & WS_MAXIMIZEBOX) != 0 && !isMaximized );
setMenuItemState( systemMenu, SC_CLOSE, true );
// make "Close" item the default to be consistent with the system menu shown