From 1c49b2f969eff27401afa83203c08c03ee608056 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Tue, 3 May 2005 09:08:12 +0000 Subject: [PATCH] Mac OS X: Only use SetSystemUIMode workaround on 10.3 and lower --- src/java/org/lwjgl/opengl/MacOSXDisplay.java | 23 +++++++++++++++++++- src/native/macosx/org_lwjgl_opengl_Display.m | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/java/org/lwjgl/opengl/MacOSXDisplay.java b/src/java/org/lwjgl/opengl/MacOSXDisplay.java index 51bfa05d..7ec4285e 100644 --- a/src/java/org/lwjgl/opengl/MacOSXDisplay.java +++ b/src/java/org/lwjgl/opengl/MacOSXDisplay.java @@ -260,8 +260,29 @@ final class MacOSXDisplay implements DisplayImplementation { * This is an interface to the native Carbon call * SetSystemUIMode. It is used to hide the dock in a way * that will prevent AWT from shifting the fullscreen window + * + * The workaround is not necessary on 10.4, and since 10.4 shows + * instability problems calling SetSystemUIMode, we'll only call it + * when the OS version is 10.3 or lower. */ - private native void hideUI(boolean hide); + private void hideUI(boolean hide) { + String os_version = System.getProperty("os.version"); + StringTokenizer version_tokenizer = new StringTokenizer(os_version, "."); + int major = 10; + int minor = 4; + try { + String major_str = version_tokenizer.nextToken(); + String minor_str = version_tokenizer.nextToken(); + major = Integer.parseInt(major_str); + minor = Integer.parseInt(minor_str); + } catch (Exception e) { + LWJGLUtil.log("Exception occurred while trying to determine OS version: " + e); + } + if (major == 10 && minor <= 3) + nHideUI(hide); + } + + private native void nHideUI(boolean hide); native void getMouseDeltas(IntBuffer delta_buffer); diff --git a/src/native/macosx/org_lwjgl_opengl_Display.m b/src/native/macosx/org_lwjgl_opengl_Display.m index 81e8b0c8..5cf0e0a5 100644 --- a/src/native/macosx/org_lwjgl_opengl_Display.m +++ b/src/native/macosx/org_lwjgl_opengl_Display.m @@ -62,7 +62,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_MacOSXDisplay_setGammaRamp(JNIEnv * } } -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_MacOSXDisplay_hideUI(JNIEnv *env, jobject this, jboolean hide) { +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_MacOSXDisplay_nHideUI(JNIEnv *env, jobject this, jboolean hide) { if (hide == JNI_TRUE) { SetSystemUIMode(kUIModeContentSuppressed, 0); } else {