Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missed gestures #622

Closed
pzac opened this issue Nov 7, 2021 · 13 comments
Closed

Missed gestures #622

pzac opened this issue Nov 7, 2021 · 13 comments

Comments

@pzac
Copy link

pzac commented Nov 7, 2021

Hi, I've been recently noticing that some gestures are missed: the overlay with the intended action appears, but the action is not executed. This seems to happen especially when it's a fast, short gesture (like page back/forward), regardless of how many times I repeat. If I try again, moving very slowly, the gesture works again. Any idea?

My setup: MacOS 12.0.1, FF 94.0.1, GF 3.2.3.

Thanks for your work on this extension!

@Robbendebiene
Copy link
Owner

Hi, can you please share your config? (you can export it in the settings page under "about").

Honestly the only explanation I could come up with is that shortly before you complete the gesture you somehow make a move that leads to an unmatched gesture.

When did the problem first occur? Maybe after the update to Firefox 94? Does it work with a previous Gesturefy version, like 3.2.1 ?

Any special devices things like a high resolution display or high dpi mouse?

Since I can't reproduce the problem I'm only guessing an rely on further investigation by you.


Another idea:
What's new in version 3.2.2 is that you can now cancel the Gesture by clicking another mouse button. Might this be an option that you somehow trigger another mouse button?

@SteveOnorato
Copy link

Same problem for me in 3.2.3. Quick short gestures hardly ever work now, but they had never failed in previous months of use. Confirmed that rolling back to 3.2.1 works great, but 3.2.3 is an extremely frustrating experience.

FF 94.0, MacOS 11.6, MacBook Pro (16-inch 2019), 5K external monitor, Logitech M500s mouse.

@SteveOnorato
Copy link

Here's my current config.json. I removed all but 1 gesture to debug. Also tried all 3 values for "matchingAlgorithm"

{
  "Blacklist": [],
  "Gestures": [
    {
      "pattern": [
        [
          0,
          235
        ]
      ],
      "command": {
        "name": "CloseTab",
        "settings": {
          "nextFocus": "default",
          "closePinned": true
        }
      }
    }
  ],
  "Settings": {
    "Gesture": {
      "mouseButton": 2,
      "suppressionKey": "",
      "distanceThreshold": 10,
      "distanceSensitivity": 10,
      "Timeout": {
        "active": true,
        "duration": 3
      },
      "Trace": {
        "display": true,
        "Style": {
          "opacity": 0.8,
          "strokeStyle": "#00AAA0cc",
          "lineWidth": 10,
          "lineGrowth": true
        }
      },
      "Directions": {
        "display": false,
        "Style": {
          "color": "#FFFFFF",
          "backgroundColor": "#000000",
          "backgroundOpacity": 0.3,
          "fontSize": "8vh",
          "textAlign": "center"
        }
      },
      "Command": {
        "display": true,
        "Style": {
          "backgroundColor": "#0000004d",
          "backgroundOpacity": 0.3,
          "fontSize": "6vh",
          "fontColor": "#FFFFFFff"
        }
      },
      "matchingAlgorithm": "strict"
    },
    "Rocker": {
      "active": false,
      "leftMouseClick": {
        "name": "PageBack"
      },
      "rightMouseClick": {
        "name": "PageForth"
      }
    },
    "Wheel": {
      "active": false,
      "mouseButton": 1,
      "wheelUp": {
        "name": "FocusRightTab",
        "settings": {
          "cycling": true,
          "excludeDiscarded": false
        }
      },
      "wheelDown": {
        "name": "FocusLeftTab",
        "settings": {
          "cycling": true,
          "excludeDiscarded": false
        }
      }
    },
    "General": {
      "updateNotification": true,
      "theme": "light"
    }
  }
}

@pzac
Copy link
Author

pzac commented Nov 9, 2021

These are my settings:

{
  "Gestures": [
    {
      "pattern": [
        [
          0,
          -1
        ]
      ],
      "command": {
        "name": "ScrollTop",
        "settings": {
          "duration": 100
        }
      }
    },
    {
      "pattern": [
        [
          1,
          0
        ]
      ],
      "command": {
        "name": "PageForth"
      }
    },
    {
      "pattern": [
        [
          -1,
          0
        ]
      ],
      "command": {
        "name": "PageBack"
      }
    },
    {
      "pattern": [
        [
          9,
          264
        ]
      ],
      "command": {
        "name": "CloseTab",
        "settings": {
          "nextFocus": "default",
          "closePinned": true
        }
      }
    }
  ],
  "Settings": {
    "Gesture": {
      "distanceThreshold": 8,
      "deviationTolerance": 0.15,
      "matchingAlgorithm": "combined"
    }
  }
}

@pzac
Copy link
Author

pzac commented Nov 9, 2021

I confirm that version 3.2.1 works perfectly. Additional hardware info, if helps: bluetooth Logitech M535 mouse, 5k external display.

@Robbendebiene
Copy link
Owner

@pzac @SteveOnorato Can you please reproduce the problem in the white area below: https://codepen.io/Robbendebiene/pen/JjyZraM and post the outputs here?

I'm pretty sure the following is causing the problem:

What's new in version 3.2.2 is that you can now cancel the Gesture by clicking another mouse button.

My guess is that somehow Firefox on Mac reports a wrong mouse button. Maybe I can work around that.

@SteveOnorato
Copy link

This corresponds to a failed gesture:
image

If I go slower, there isn't a pointermove line with "buttons: 0":
image

@Robbendebiene
Copy link
Owner

Thanks for the data! This is exactly as I suspected.

I've just implemented a workaround.
Can someone please verify that it solves the problem?

To do this:

  1. Download latest Gesturefy master https://github.com/Robbendebiene/Gesturefy/archive/refs/heads/master.zip
  2. Extract zip somewhere
  3. Open about:debugging switch to "This Firefox" and click "Load temporary addon"
  4. Select the manifest.json from the extracted zip inside the src directory
  5. Test if the error is gone

@SteveOnorato
Copy link

Can't reproduce the problem with that build, so looks like you fixed it :-)

@pzac
Copy link
Author

pzac commented Nov 10, 2021

Yes, this works for me, too! 👍

@Robbendebiene
Copy link
Owner

Thanks to both of you for your quick feedback. I'm going to release a new version that contains the fix.

@Robbendebiene
Copy link
Owner

If any one of you finds the time it would be good to create a Firefox bug report on bugzilla linking to the codepen and the results you've got. Because the pointermove line with "buttons: 0" shouldn't occur in this case.

@Robbendebiene
Copy link
Owner

This should be fixed in Gesturefy 3.2.4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants