public void ButtonPress(Vector3 mousePos, IBrowserUI uiHandler, Vector2 browserSize) { var now = Time.realtimeSinceStartup; if (now - lastPressTime > uiHandler.InputSettings.multiclickSpeed) { //too long ago? forget the past repeatCount = 0; } if (repeatCount > 0) { //close enough to be a multiclick? var p1 = Vector2.Scale(mousePos, browserSize); var p2 = Vector2.Scale(lastPosition, browserSize); if (Vector2.Distance(p1, p2) > uiHandler.InputSettings.multiclickTolerance) { repeatCount = 0; } } repeatCount++; lastPressTime = now; lastPosition = mousePos; }
private void HandleMouseInput() { IBrowserUI uIHandler = browser.UIHandler; Vector2 mousePosition = uIHandler.MousePosition; MouseButton mouseButtons = uIHandler.MouseButtons; Vector2 mouseScroll = uIHandler.MouseScroll; if (mousePosition != prevPos) { BrowserNative.zfb_mouseMove(browser.browserId, mousePosition.x, 1f - mousePosition.y); } if (mouseScroll.sqrMagnitude != 0f) { BrowserNative.zfb_mouseScroll(browser.browserId, (int)mouseScroll.x * uIHandler.InputSettings.scrollSpeed, (int)mouseScroll.y * uIHandler.InputSettings.scrollSpeed); } bool flag = (prevButtons & MouseButton.Left) != (mouseButtons & MouseButton.Left); bool flag2 = (mouseButtons & MouseButton.Left) == MouseButton.Left; bool flag3 = (prevButtons & MouseButton.Middle) != (mouseButtons & MouseButton.Middle); bool down = (mouseButtons & MouseButton.Middle) == MouseButton.Middle; bool flag4 = (prevButtons & MouseButton.Right) != (mouseButtons & MouseButton.Right); bool down2 = (mouseButtons & MouseButton.Right) == MouseButton.Right; if (flag) { if (flag2) { leftClickHistory.ButtonPress(mousePosition, uIHandler, browser.Size); } BrowserNative.zfb_mouseButton(browser.browserId, BrowserNative.MouseButton.MBT_LEFT, flag2, flag2 ? leftClickHistory.repeatCount : 0); } if (flag3) { BrowserNative.zfb_mouseButton(browser.browserId, BrowserNative.MouseButton.MBT_MIDDLE, down, 1); } if (flag4) { BrowserNative.zfb_mouseButton(browser.browserId, BrowserNative.MouseButton.MBT_RIGHT, down2, 1); } prevPos = mousePosition; prevButtons = mouseButtons; }
public void ButtonPress(Vector3 mousePos, IBrowserUI uiHandler, Vector2 browserSize) { float realtimeSinceStartup = Time.realtimeSinceStartup; if (realtimeSinceStartup - lastPressTime > uiHandler.InputSettings.multiclickSpeed) { repeatCount = 0; } if (repeatCount > 0) { Vector2 a = Vector2.Scale(mousePos, browserSize); Vector2 b = Vector2.Scale(lastPosition, browserSize); if (Vector2.Distance(a, b) > uiHandler.InputSettings.multiclickTolerance) { repeatCount = 0; } } repeatCount++; lastPressTime = realtimeSinceStartup; lastPosition = mousePos; }