Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
8269984: [macos] JTabbedPane title looks like disabled
Reviewed-by: kcr, psadhukhan
  • Loading branch information
Alexander Zuev committed Jul 23, 2021
1 parent e90ed6c commit 8adf008b150bfda783ae615965198edb4d196016
Showing with 24 additions and 10 deletions.
  1. +24 −10 src/java.desktop/macosx/classes/apple/laf/JRSUIUtils.java
@@ -36,43 +36,57 @@

static boolean isLeopard = isMacOSXLeopard();
static boolean isSnowLeopardOrBelow = isMacOSXSnowLeopardOrBelow();
static boolean isBigSurOrAbove = isMacOSXBigSurOrAbove();

public static boolean isMacOSXBigSurOrAbove() {
return currentMacOSXVersionMatchesGivenVersionRange(16, true, false, true);
return currentMacOSXVersionMatchesGivenVersionRange(10, 16, true,
false, true);
}

static boolean isMacOSXLeopard() {
return isCurrentMacOSXVersion(5);
}

static boolean isMacOSXSnowLeopardOrBelow() {
return currentMacOSXVersionMatchesGivenVersionRange(6, true, true, false);
return currentMacOSXVersionMatchesGivenVersionRange(10, 6, true,
true, false);
}

static boolean isCurrentMacOSXVersion(final int version) {
return currentMacOSXVersionMatchesGivenVersionRange(version, true, false, false);
return isCurrentMacOSXVersion(10, version);
}

static boolean isCurrentMacOSXVersion(final int major, final int minor) {
return currentMacOSXVersionMatchesGivenVersionRange(major, minor, true, false, false);
}

static boolean currentMacOSXVersionMatchesGivenVersionRange(
final int version, final boolean inclusive,
final boolean matchBelow, final boolean matchAbove) {
// split the "10.x.y" version number
return currentMacOSXVersionMatchesGivenVersionRange(10, version, inclusive, matchBelow, matchAbove);
}

static boolean currentMacOSXVersionMatchesGivenVersionRange(
final int majorVersion, final int minorVersion, final boolean inclusive,
final boolean matchBelow, final boolean matchAbove) {
// split the "x.y.z" version number
@SuppressWarnings("removal")
String osVersion = AccessController.doPrivileged(new GetPropertyAction("os.version"));
String[] fragments = osVersion.split("\\.");

// sanity check the "10." part of the version
if (!fragments[0].equals("10")) return false;
if (fragments.length < 2) return false;

// check if os.version matches the given version using the given match method
try {
int majorVers = Integer.parseInt(fragments[0]);
int minorVers = Integer.parseInt(fragments[1]);

if (inclusive && minorVers == version) return true;
if (matchBelow && minorVers < version) return true;
if (matchAbove && minorVers > version) return true;
if (inclusive && majorVers == majorVersion && minorVers == minorVersion) return true;
if (matchBelow &&
(majorVers < majorVersion ||
(majorVers == majorVersion && minorVers < minorVersion))) return true;
if (matchAbove &&
(majorVers > majorVersion ||
(majorVers == majorVersion && minorVers > minorVersion))) return true;

} catch (NumberFormatException e) {
// was not an integer

1 comment on commit 8adf008

@openjdk-notifier

This comment has been minimized.

Copy link

@openjdk-notifier openjdk-notifier bot commented on 8adf008 Jul 23, 2021

Please sign in to comment.