В Windows вы можете сделать это так:
private static final void toggleAlwaysOnTop(Shell shell, boolean isOnTop){
long handle = shell.handle;
Point location = shell.getLocation();
Point dimension = shell.getSize();
OS.SetWindowPos(handle, isOnTop ? OS.HWND_TOPMOST : OS.HWND_NOTOPMOST,location.x, location.y, dimension.x, dimension.y, 0);
}
Все эти API общедоступны, поэтому нет необходимости размышлять.
Последний аргумент для SetWindowPos
не совпадает с Shell.getStyle()
. Оставив его равным 0, в настоящее время у меня нет проблем.