Skip to content
This repository has been archived by the owner. It is now read-only.

8269984: [macos] JTabbedPane title looks like disabled #269

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -36,43 +36,57 @@ public final class JRSUIUtils {

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