diff --git a/engine/android/AndroidManifest.xml b/engine/android/AndroidManifest.xml
index 652f0aec4..e0c2d8330 100644
--- a/engine/android/AndroidManifest.xml
+++ b/engine/android/AndroidManifest.xml
@@ -5,7 +5,7 @@
android:versionName="1.4.4"
android:installLocation="preferExternal">
-
+
diff --git a/engine/android/jni/openbor/include/sdl/SDL_revision.h b/engine/android/jni/openbor/include/sdl/SDL_revision.h
index 1eb1f73fb..54a1d8a79 100644
--- a/engine/android/jni/openbor/include/sdl/SDL_revision.h
+++ b/engine/android/jni/openbor/include/sdl/SDL_revision.h
@@ -1,2 +1,2 @@
-#define SDL_REVISION "hg-12019:25d299fc8443"
-#define SDL_REVISION_NUMBER 12019
+#define SDL_REVISION "hg-12001:84c2582329b0"
+#define SDL_REVISION_NUMBER 12001
diff --git a/engine/android/jni/openbor/include/sdl/SDL_system.h b/engine/android/jni/openbor/include/sdl/SDL_system.h
index 6d6832d0f..77186b597 100644
--- a/engine/android/jni/openbor/include/sdl/SDL_system.h
+++ b/engine/android/jni/openbor/include/sdl/SDL_system.h
@@ -125,11 +125,6 @@ extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(void);
*/
extern DECLSPEC SDL_bool SDLCALL SDL_IsAndroidTV(void);
-/**
- \brief Return true if the application is running on a Chromebook
- */
-extern DECLSPEC SDL_bool SDLCALL SDL_IsChromebook(void);
-
/**
See the official Android developer guide for more information:
http://developer.android.com/guide/topics/data/data-storage.html
diff --git a/engine/android/jni/openbor/lib/armeabi-v7a/libSDL2.so b/engine/android/jni/openbor/lib/armeabi-v7a/libSDL2.so
index f14f12614..7249442d1 100644
Binary files a/engine/android/jni/openbor/lib/armeabi-v7a/libSDL2.so and b/engine/android/jni/openbor/lib/armeabi-v7a/libSDL2.so differ
diff --git a/engine/android/src/org/libsdl/app/SDLActivity.java b/engine/android/src/org/libsdl/app/SDLActivity.java
index d466272bc..dd59238b1 100644
--- a/engine/android/src/org/libsdl/app/SDLActivity.java
+++ b/engine/android/src/org/libsdl/app/SDLActivity.java
@@ -102,7 +102,6 @@ public enum NativeState {
protected static SDLClipboardHandler mClipboardHandler;
protected static Hashtable mCursors;
protected static int mLastCursorID;
- protected static SDLGenericMotionListener_API12 mMotionListener;
//White Dragon: added statics
protected static WakeLock wakeLock;
@@ -111,14 +110,6 @@ public enum NativeState {
// This is what SDL runs in. It invokes SDL_main(), eventually
protected static Thread mSDLThread;
- protected static SDLGenericMotionListener_API12 getMotionListener() {
- if (mMotionListener == null) {
- mMotionListener = new SDLGenericMotionListener_API12();
- }
-
- return mMotionListener;
- }
-
/**
* This method returns the name of the shared object with the application entry point
* It can be overridden by derived classes.
@@ -465,7 +456,6 @@ public void onWindowFocusChanged(boolean hasFocus) {
SDLActivity.mHasFocus = hasFocus;
if (hasFocus) {
mNextNativeState = NativeState.RESUMED;
- SDLActivity.getMotionListener().reclaimRelativeMouseModeIfNeeded();
hideSystemUI(); //White Dragon: disable navigation bar
} else {
mNextNativeState = NativeState.PAUSED;
@@ -609,10 +599,7 @@ public static void handleNativeState() {
/* The native thread has finished */
public static void handleNativeExit() {
SDLActivity.mSDLThread = null;
-
- // Make sure we currently have a singleton before we try to call it.
- if (mSingleton != null)
- mSingleton.finish();
+ mSingleton.finish();
}
@@ -662,16 +649,18 @@ public void handleMessage(Message msg) {
// This version of Android doesn't support the immersive fullscreen mode
break;
}
+/* This needs more testing, per bug 4096 - Enabling fullscreen on Android causes the app to toggle fullscreen mode continuously in a loop
+ ***
if (context instanceof Activity) {
Window window = ((Activity) context).getWindow();
if (window != null) {
if ((msg.obj instanceof Integer) && (((Integer) msg.obj).intValue() != 0)) {
- int flags = View.SYSTEM_UI_FLAG_FULLSCREEN |
- View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
- View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY |
- View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
+ int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
- View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
+ View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
+ View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
+ View.SYSTEM_UI_FLAG_FULLSCREEN |
+ View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
window.getDecorView().setSystemUiVisibility(flags);
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
@@ -683,6 +672,7 @@ public void handleMessage(Message msg) {
} else {
Log.e(TAG, "error handling message, getContext() returned no Activity");
}
+***/
break;
case COMMAND_TEXTEDIT_HIDE:
if (mTextEdit != null) {
@@ -738,11 +728,11 @@ boolean sendCommand(int command, Object data) {
public static native void nativePause();
public static native void nativeResume();
public static native void onNativeDropFile(String filename);
- public static native void onNativeResize(int surfaceWidth, int surfaceHeight, int deviceWidth, int deviceHeight, int format, float rate);
+ public static native void onNativeResize(int x, int y, int format, float rate);
public static native void onNativeKeyDown(int keycode);
public static native void onNativeKeyUp(int keycode);
public static native void onNativeKeyboardFocusLost();
- public static native void onNativeMouse(int button, int action, float x, float y, boolean relative);
+ public static native void onNativeMouse(int button, int action, float x, float y);
public static native void onNativeTouch(int touchDevId, int pointerFingerId,
int action, float x,
float y, float p);
@@ -821,6 +811,7 @@ public void setOrientationBis(int w, int h, boolean resizable, String hint)
}
}
+
/**
* This method is called by SDL using JNI.
*/
@@ -839,22 +830,6 @@ public static boolean isScreenKeyboardShown()
}
- /**
- * This method is called by SDL using JNI.
- */
- public static boolean supportsRelativeMouse()
- {
- return SDLActivity.getMotionListener().supportsRelativeMouse();
- }
-
- /**
- * This method is called by SDL using JNI.
- */
- public static boolean setRelativeMouseEnabled(boolean enabled)
- {
- return SDLActivity.getMotionListener().setRelativeMouseEnabled(enabled);
- }
-
/**
* This method is called by SDL using JNI.
*/
@@ -880,13 +855,6 @@ public static boolean isAndroidTV() {
return (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION);
}
- /**
- * This method is called by SDL using JNI.
- */
- public static boolean isChromebook() {
- return getContext().getPackageManager().hasSystemFeature("org.chromium.arc.device_management");
- }
-
/**
* This method is called by SDL using JNI.
*/
@@ -921,12 +889,6 @@ public static boolean getManifestEnvironmentVariables() {
return false;
}
- // This method is called by SDLControllerManager's API 26 Generic Motion Handler.
- public static View getContentView()
- {
- return mSingleton.mLayout;
- }
-
static class ShowTextInputTask implements Runnable {
/*
* This is used to regulate the pan&scan method to have some offset from
@@ -1458,9 +1420,9 @@ public SDLSurface(Context context) {
mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
if (Build.VERSION.SDK_INT >= 12) {
- setOnGenericMotionListener(SDLActivity.getMotionListener());
+ setOnGenericMotionListener(new SDLGenericMotionListener_API12());
}
-
+
// Some arbitrary defaults to avoid a potential division by zero
mWidth = 1.0f;
mHeight = 1.0f;
@@ -1556,23 +1518,8 @@ public void surfaceChanged(SurfaceHolder holder,
mWidth = width;
mHeight = height;
- int nDeviceWidth = width;
- int nDeviceHeight = height;
- try
- {
- if ( android.os.Build.VERSION.SDK_INT >= 17 )
- {
- android.util.DisplayMetrics realMetrics = new android.util.DisplayMetrics();
- mDisplay.getRealMetrics( realMetrics );
- nDeviceWidth = realMetrics.widthPixels;
- nDeviceHeight = realMetrics.heightPixels;
- }
- }
- catch ( java.lang.Throwable throwable ) {}
-
- Log.v("SDL", "Window size: " + width + "x" + height);
- Log.v("SDL", "Device size: " + nDeviceWidth + "x" + nDeviceHeight);
- SDLActivity.onNativeResize(width, height, nDeviceWidth, nDeviceHeight, sdlFormat, mDisplay.getRefreshRate());
+ SDLActivity.onNativeResize(width, height, sdlFormat, mDisplay.getRefreshRate());
+ Log.v("SDL", "Window size: " + width + "x" + height);
boolean skip = false;
@@ -1775,14 +1722,7 @@ public boolean onTouch(View v, MotionEvent event) {
mouseButton = 1; // oh well.
}
}
-
- // We need to check if we're in relative mouse mode and get the axis offset rather than the x/y values
- // if we are. We'll leverage our existing mouse motion listener
- SDLGenericMotionListener_API12 motionListener = SDLActivity.getMotionListener();
- x = motionListener.getEventX(event);
- y = motionListener.getEventY(event);
-
- SDLActivity.onNativeMouse(mouseButton, action, x, y, motionListener.inRelativeMode());
+ SDLActivity.onNativeMouse(mouseButton, action, event.getX(0), event.getY(0));
} else {
switch(action) {
case MotionEvent.ACTION_MOVE:
diff --git a/engine/android/src/org/libsdl/app/SDLControllerManager.java b/engine/android/src/org/libsdl/app/SDLControllerManager.java
index 7763cb726..d0e9c8d5e 100644
--- a/engine/android/src/org/libsdl/app/SDLControllerManager.java
+++ b/engine/android/src/org/libsdl/app/SDLControllerManager.java
@@ -534,14 +534,14 @@ public boolean onGenericMotion(View v, MotionEvent event) {
case MotionEvent.ACTION_SCROLL:
x = event.getAxisValue(MotionEvent.AXIS_HSCROLL, 0);
y = event.getAxisValue(MotionEvent.AXIS_VSCROLL, 0);
- SDLActivity.onNativeMouse(0, action, x, y, false);
+ SDLActivity.onNativeMouse(0, action, x, y);
return true;
case MotionEvent.ACTION_HOVER_MOVE:
x = event.getX(0);
y = event.getY(0);
- SDLActivity.onNativeMouse(0, action, x, y, false);
+ SDLActivity.onNativeMouse(0, action, x, y);
return true;
default:
@@ -556,30 +556,5 @@ public boolean onGenericMotion(View v, MotionEvent event) {
// Event was not managed
return false;
}
-
- public boolean supportsRelativeMouse() {
- return false;
- }
-
- public boolean inRelativeMode() {
- return false;
- }
-
- public boolean setRelativeMouseEnabled(boolean enabled) {
- return false;
- }
-
- public void reclaimRelativeMouseModeIfNeeded()
- {
-
- }
-
- public float getEventX(MotionEvent event) {
- return event.getX(0);
- }
-
- public float getEventY(MotionEvent event) {
- return event.getY(0);
- }
-
}
+
diff --git a/tools/win-sdk/win-sdk.7z.001 b/tools/win-sdk/win-sdk.7z.001
index 3537337eb..5ac99a922 100644
Binary files a/tools/win-sdk/win-sdk.7z.001 and b/tools/win-sdk/win-sdk.7z.001 differ
diff --git a/tools/win-sdk/win-sdk.7z.002 b/tools/win-sdk/win-sdk.7z.002
index e729eae2c..18ebee873 100644
Binary files a/tools/win-sdk/win-sdk.7z.002 and b/tools/win-sdk/win-sdk.7z.002 differ