Support relative mouse for Samsung DeX on Samsung Experience 9.5 or later (Android 8.1 or later)

This commit is contained in:
Sam Lantinga 2018-09-24 11:53:04 -07:00
parent 5febdfcece
commit e0fe8f3cb3
2 changed files with 10 additions and 5 deletions

View File

@ -766,9 +766,14 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
return false; return false;
} }
// Samsung DeX mode doesn't support relative mice properly under Android 7 APIs, // DeX mode in Samsung Experience 9.0 and earlier doesn't support relative mice properly under
// and simply returns no data under Android 8 APIs. // Android 7 APIs, and simply returns no data under Android 8 APIs.
if (isDeXMode()) { //
// This is fixed in Samsung Experience 9.5, which corresponds to Android 8.1.0, and
// thus SDK version 27. If we are in DeX mode and not API 27 or higher, as a result,
// we should stick to relative mode.
//
if ((Build.VERSION.SDK_INT < 27) && isDeXMode()) {
return false; return false;
} }

View File

@ -764,7 +764,7 @@ class SDLGenericMotionListener_API26 extends SDLGenericMotionListener_API24 {
@Override @Override
public boolean supportsRelativeMouse() { public boolean supportsRelativeMouse() {
return !SDLActivity.isDeXMode(); return (!SDLActivity.isDeXMode() || (Build.VERSION.SDK_INT >= 27));
} }
@Override @Override
@ -774,7 +774,7 @@ class SDLGenericMotionListener_API26 extends SDLGenericMotionListener_API24 {
@Override @Override
public boolean setRelativeMouseEnabled(boolean enabled) { public boolean setRelativeMouseEnabled(boolean enabled) {
if (!SDLActivity.isDeXMode()) { if (!SDLActivity.isDeXMode() || (Build.VERSION.SDK_INT >= 27)) {
if (enabled) { if (enabled) {
SDLActivity.getContentView().requestPointerCapture(); SDLActivity.getContentView().requestPointerCapture();
} }