Removed autofire for on-screen keyboard, the feature is unused and complicated

This commit is contained in:
pelya
2014-03-01 18:45:03 +02:00
parent 6837d5e0f1
commit b40e28f3a7
8 changed files with 49 additions and 255 deletions

View File

@@ -130,7 +130,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, HOVER_DISTANCE_MAX = 1024 };
enum { DEADZONE_HOVER_FINGER = 32, DEADZONE_HOVER_STYLUS = 64, HOVER_FREEZE_TIME = 500, HOVER_DISTANCE_MAX = 1024 };
static int hoverJitterFilter = 1;
static int hoverX, hoverY, hoverTime = 0, hoverMouseFreeze = 0, hoverDeadzone = 0;
static int rightMouseButtonLongPress = 1;
@@ -681,45 +681,53 @@ static void ProcessMouseHover( jint *xx, jint *yy, int action, int distance )
{
int x = *xx, y = *yy;
if( relativeMovement || !hoverJitterFilter )
if( relativeMovement )
return;
if( action == MOUSE_HOVER )
if( !hoverJitterFilter )
{
if( hoverDeadzone )
if( action == MOUSE_HOVER )
SDL_ANDROID_MainThreadPushMouseMotion(x, y);
}
else
{
if( action == MOUSE_HOVER )
{
if( abs(x - hoverX) < hoverDeadzone && abs(y - hoverY) < hoverDeadzone )
if( hoverDeadzone )
{
if( hoverTime == 0 )
hoverTime = SDL_GetTicks();
else if( !hoverMouseFreeze && SDL_GetTicks() > hoverTime + HOVER_FREEZE_TIME )
if( abs(x - hoverX) < hoverDeadzone && abs(y - hoverY) < hoverDeadzone )
{
hoverMouseFreeze = 1;
if( hoverTime == 0 )
hoverTime = SDL_GetTicks();
else if( !hoverMouseFreeze && SDL_GetTicks() > hoverTime + HOVER_FREEZE_TIME )
{
hoverMouseFreeze = 1;
hoverX = x;
hoverY = y;
}
}
else
{
hoverTime = 0;
hoverMouseFreeze = 0;
hoverX = x;
hoverY = y;
}
}
else
{
hoverTime = 0;
hoverMouseFreeze = 0;
hoverX = x;
hoverY = y;
}
if( !hoverMouseFreeze )
SDL_ANDROID_MainThreadPushMouseMotion(x, y);
}
else if( hoverMouseFreeze && !(abs(x - hoverX) < hoverDeadzone && abs(y - hoverY) < hoverDeadzone) )
{
hoverMouseFreeze = 0;
hoverTime = 0;
}
if( !hoverMouseFreeze )
SDL_ANDROID_MainThreadPushMouseMotion(x, y);
}
else if( hoverMouseFreeze && !(abs(x - hoverX) < hoverDeadzone && abs(y - hoverY) < hoverDeadzone) )
{
hoverMouseFreeze = 0;
hoverTime = 0;
}
if( hoverMouseFreeze )
{
*xx = hoverX;
*yy = hoverY;
if( hoverMouseFreeze )
{
*xx = hoverX;
*yy = hoverY;
}
}
if( action == MOUSE_HOVER && distance < HOVER_DISTANCE_MAX / 4 )
@@ -1044,9 +1052,9 @@ JAVA_EXPORT_NAME(DemoGLSurfaceView_nativeHardwareMouseDetected) (JNIEnv* env, jo
void SDL_ANDROID_SetHoverDeadzone()
{
hoverDeadzone = (hardwareMouseDetected == MOUSE_HW_INPUT_STYLUS) ?
SDL_ANDROID_sFakeWindowHeight / DEADZONE_HOVER_STYLUS :
SDL_ANDROID_sFakeWindowHeight * (70 / (atoi(getenv("DISPLAY_HEIGHT_MM")) > 0 ? atoi(getenv("DISPLAY_HEIGHT_MM")) : 70)) / DEADZONE_HOVER_STYLUS :
(hardwareMouseDetected == MOUSE_HW_INPUT_FINGER) ?
SDL_ANDROID_sFakeWindowHeight / DEADZONE_HOVER_FINGER : 0;
SDL_ANDROID_sFakeWindowHeight * (70 / (atoi(getenv("DISPLAY_HEIGHT_MM")) > 0 ? atoi(getenv("DISPLAY_HEIGHT_MM")) : 70)) / DEADZONE_HOVER_FINGER : 0;
}
JNIEXPORT void JNICALL