Magnifying glass when hovering finger near display
This commit is contained in:
@@ -127,7 +127,7 @@ int SDL_ANDROID_currentMouseButtons = 0;
|
||||
static int hardwareMouseDetected = 0;
|
||||
enum { MOUSE_HW_BUTTON_LEFT = 1, MOUSE_HW_BUTTON_RIGHT = 2, MOUSE_HW_BUTTON_MIDDLE = 4, MOUSE_HW_BUTTON_BACK = 8, MOUSE_HW_BUTTON_FORWARD = 16, MOUSE_HW_BUTTON_MAX = MOUSE_HW_BUTTON_FORWARD };
|
||||
enum { MOUSE_HW_INPUT_FINGER = 0, MOUSE_HW_INPUT_STYLUS = 1, MOUSE_HW_INPUT_MOUSE = 2 };
|
||||
enum { DEADZONE_HOVER_FINGER = 32, DEADZONE_HOVER_STYLUS = 64, HOVER_FREEZE_TIME = 300 };
|
||||
enum { DEADZONE_HOVER_FINGER = 32, DEADZONE_HOVER_STYLUS = 64, HOVER_FREEZE_TIME = 300, HOVER_DISTANCE_MAX = 1024 };
|
||||
static int hoverJitterFilter = 1;
|
||||
static int hoverX, hoverY, hoverTime = 0, hoverMouseFreeze = 0, hoverDeadzone = 0;
|
||||
|
||||
@@ -632,7 +632,7 @@ static void ProcessMouseMultitouch( int action, int pointerId )
|
||||
}
|
||||
}
|
||||
|
||||
static void ProcessMouseHover( jint *xx, jint *yy, int action )
|
||||
static void ProcessMouseHover( jint *xx, jint *yy, int action, int distance )
|
||||
{
|
||||
int x = *xx, y = *yy;
|
||||
|
||||
@@ -677,6 +677,11 @@ static void ProcessMouseHover( jint *xx, jint *yy, int action )
|
||||
*yy = hoverY;
|
||||
}
|
||||
|
||||
if( action == MOUSE_HOVER && distance < HOVER_DISTANCE_MAX / 4 )
|
||||
UpdateScreenUnderFingerRect(*xx, *yy);
|
||||
else
|
||||
SDL_ANDROID_ShowScreenUnderFingerRect.w = SDL_ANDROID_ShowScreenUnderFingerRect.h = 0; // This is reset later by ProcessMouseMove()
|
||||
|
||||
#ifdef VIDEO_DEBUG
|
||||
SDL_ANDROID_VideoDebugRect.x = hoverX - hoverDeadzone;
|
||||
SDL_ANDROID_VideoDebugRect.y = hoverY - hoverDeadzone;
|
||||
@@ -716,7 +721,7 @@ JAVA_EXPORT_NAME(DemoGLSurfaceView_nativeMotionEvent) ( JNIEnv* env, jobject t
|
||||
if( !SDL_ANDROID_isMouseUsed )
|
||||
return;
|
||||
|
||||
ProcessMouseHover( &x, &y, action );
|
||||
ProcessMouseHover( &x, &y, action, force );
|
||||
|
||||
if( pointerId == firstMousePointerId )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user